首页 > 解决方案 > 属性窗口中的下拉列表从某个索引开始

问题描述

背景信息: 我们有一个名为 Sensor 的 UserControl。Sensor 有一个名为 SlaveSensor 的属性。SlaveSensor 属性的类型是 Sensor。

public Sensor SlaveSensor;
{
    get
    {
        return _slaveSensor;
    }
    set
    {
        //Some more code for checking various stuff...

        _slaveSensor; = value;
    }
}

如您所见,该属性的类型与 UserControl 本身相同。SlaveSensor 属性通常在设计时通过属性窗口设置。Visual Studio 自动将编辑器提供为一个下拉列表,从中可以从表单上的所有可用传感器中进行选择。

我的问题是: 如何使下拉列表从列表中的指定实例开始,以便更快地找到要为属性设置的正确传感器?

要设置为属性的传感器名称始终与为其设置属性的传感器名称几乎相同。因此,如果例如下拉列表会简单地自动滚动到列表中的索引,该索引具有正在为其设置属性的传感器的名称,那么我已经实现了我的目标。

到目前为止我有什么: 我假设我需要实现一个自定义属性编辑器。我实际上可以创建一个带有下拉列表的列表,并用字符串填充它,但是现有的就可以了,我只需要告诉它在单击时下拉到某个索引。

提前感谢您的帮助!

标签: c#visual-studiopropertieseditor

解决方案


我会试试这个。

string text = "SomeText";
var item = dropdown.Items.FindByText(text);
if(item!= null)
   item.Selected = true;

或按价值:

string value = "SomeValue";
var item = dropdown.Items.FindByValue(value);
if (item != null)
  item.Selected = true;

取自这里的最佳答案


推荐阅读