C#填充组合框

C#填充组合框,c#,combobox,C#,Combobox,如何在C#中用一个数组填充组合框,该数组的display member是数组的值,value member是数组键 string[] RelayTypeArray = new string[4]; RelayTypeArray[0] = null; RelayTypeArray[1] = "Boiler"; RelayTypeArray[2] = "Valve"; RelayTypeArray[3] = "Pump"; cmb_RelayType.DataSource = RelayT

如何在C#中用一个数组填充组合框,该数组的display member是数组的值,value member是数组键

string[] RelayTypeArray = new string[4]; 
RelayTypeArray[0] = null; 
RelayTypeArray[1] = "Boiler"; 
RelayTypeArray[2] = "Valve"; 
RelayTypeArray[3] = "Pump"; 
cmb_RelayType.DataSource = RelayTypeArray; 
cmb_RelayType.DisplayMember = RelayTypeArray; 
cmb_RelayType.ValueMember = ?????

如果将
字符串[]
作为
数据源
放置,则不必定义
DataMember
ValueMember
。 您只需获取
mymbobox.SelectedValue
mymbobox.SelectedIndex

DataMember
-属性只描述了要在组合框中显示的属性,其类型为设置为
DataSource

例如,您设置了一个

class Test
{
    public string Name { get; set; }
    public int Id { get; set; }
}
作为
DataSource
,并希望该框显示必须设置的
Name
属性

myComboBox.DataMember = "Name";
ValueMember
是GUI的一个“不可见”属性,您可以在其中存储值供以后使用,例如:

myComboBox.ValueMember = "Id"

因此,如果有人通过显示的
名称选择一个项目,您可以从
(不知道道具名称)属性中获取
Id
,如果您只放置
字符串[]
作为
DataSource
您不必定义
DataMember
ValueMember
。 您只需获取
mymbobox.SelectedValue
mymbobox.SelectedIndex

DataMember
-属性只描述了要在组合框中显示的属性,其类型为设置为
DataSource

例如,您设置了一个

class Test
{
    public string Name { get; set; }
    public int Id { get; set; }
}
作为
DataSource
,并希望该框显示必须设置的
Name
属性

myComboBox.DataMember = "Name";
ValueMember
是GUI的一个“不可见”属性,您可以在其中存储值供以后使用,例如:

myComboBox.ValueMember = "Id"

因此,如果有人通过显示的
名称选择一个项目,您可以从
ComboBoxItem

值(不知道道具名称)属性中获取
Id
,使用类绑定它的集合:

class RelayType
{
    private int m_Index;
    private string m_Value;

    public RelayType(int index, string value)
    {
        m_Index = index;
        m_Value = value;
    }

    public int Index
    {
        get { return m_Index; }
    }

    public string Value
    {
        get { return m_Value; }
    }
}

var relayTypeCol = new List<RelayType>(); 
relayTypeCol.Add(new RelayType(0, ""));
relayTypeCol.Add(new RelayType(1, "Boiler"));
relayTypeCol.Add(new RelayType(2, "Valve"));
relayTypeCol.Add(new RelayType(3, "Pump"));

cmb_RelayType.DataSource = relayTypeCol; 
cmb_RelayType.DisplayMember = "Value"; 
cmb_RelayType.ValueMember = "Index";
类关系类型
{
私有整数m_指数;
私有字符串m_值;
公共关系类型(整型索引,字符串值)
{
m_指数=指数;
m_值=值;
}
公共整数索引
{
获取{return m_Index;}
}
公共字符串值
{
获取{返回m_值;}
}
}
var relayTypeCol=新列表();
relayTypeCol.Add(新RelayType(0,”);
新增继电器类型(新继电器类型(1,“锅炉”);
新增继电器类型(新继电器类型(2,“阀门”);
relayTypeCol.Add(新的RelayType(3,“泵”));
cmb_RelayType.DataSource=relayTypeCol;
cmb_RelayType.DisplayMember=“值”;
cmb_RelayType.ValueMember=“索引”;

使用类并绑定其集合:

class RelayType
{
    private int m_Index;
    private string m_Value;

    public RelayType(int index, string value)
    {
        m_Index = index;
        m_Value = value;
    }

    public int Index
    {
        get { return m_Index; }
    }

    public string Value
    {
        get { return m_Value; }
    }
}

var relayTypeCol = new List<RelayType>(); 
relayTypeCol.Add(new RelayType(0, ""));
relayTypeCol.Add(new RelayType(1, "Boiler"));
relayTypeCol.Add(new RelayType(2, "Valve"));
relayTypeCol.Add(new RelayType(3, "Pump"));

cmb_RelayType.DataSource = relayTypeCol; 
cmb_RelayType.DisplayMember = "Value"; 
cmb_RelayType.ValueMember = "Index";
类关系类型
{
私有整数m_指数;
私有字符串m_值;
公共关系类型(整型索引,字符串值)
{
m_指数=指数;
m_值=值;
}
公共整数索引
{
获取{return m_Index;}
}
公共字符串值
{
获取{返回m_值;}
}
}
var relayTypeCol=新列表();
relayTypeCol.Add(新RelayType(0,”);
新增继电器类型(新继电器类型(1,“锅炉”);
新增继电器类型(新继电器类型(2,“阀门”);
relayTypeCol.Add(新的RelayType(3,“泵”));
cmb_RelayType.DataSource=relayTypeCol;
cmb_RelayType.DisplayMember=“值”;
cmb_RelayType.ValueMember=“索引”;

只需按原样使用阵列即可

string[] RelayTypeArray = new string[4]; 
RelayTypeArray[0] = null; 
RelayTypeArray[1] = "Boiler"; 
RelayTypeArray[2] = "Valve"; 
RelayTypeArray[3] = "Pump"; 
cmb_RelayType.DataSource = RelayTypeArray; 
如果需要文本:
cmb\u RelayType.SelectedValue


如果需要索引:
cmb\u RelayType.SelectedIndex

只需按原样使用数组即可

string[] RelayTypeArray = new string[4]; 
RelayTypeArray[0] = null; 
RelayTypeArray[1] = "Boiler"; 
RelayTypeArray[2] = "Valve"; 
RelayTypeArray[3] = "Pump"; 
cmb_RelayType.DataSource = RelayTypeArray; 
如果需要文本:
cmb\u RelayType.SelectedValue



如果需要索引:
cmb\u RelayType。选择索引

首先显示数组。基本上,你可以使用
DataBinding
例如
ControlID.DataSource=arrayDiane在您发布初始问题的部分发布您的代码。显示成员和值成员如何?发布了一个解释,希望这能帮助您解决问题。首先显示数组。基本上,你可以使用
DataBinding
例如
ControlID.DataSource=arrayDiane在您发布初始问题的部分发布您的代码。显示成员和价值成员如何?发布了解释,希望这能帮助您。非常感谢!我可以在页面加载时设置所选索引吗?我尝试了cmb_RelayType.SelectedIndex=(int)(dataset.Tables[0]。Rows[1][1]);但似乎不起作用。在组合中填充项目后,您可以随时设置SelectedIndex。要进行测试,只需尝试
cmb\u RelayType.SelectedIndex=3我尝试了该操作,但出现了以下错误:“3”的InvalidArgument=值对于“SelectedIndex”无效。参数名称:SelectedIndex感谢Paul的睿智话语。你似乎能解决这个问题吗?如果你在下拉列表中至少有四个选项,那应该是有效的。非常感谢!我可以在页面加载时设置所选索引吗?我尝试了cmb_RelayType.SelectedIndex=(int)(dataset.Tables[0]。Rows[1][1]);但似乎不起作用。在组合中填充项目后,您可以随时设置SelectedIndex。要进行测试,只需尝试
cmb\u RelayType.SelectedIndex=3我尝试了该操作,但出现了以下错误:“3”的InvalidArgument=值对于“SelectedIndex”无效。参数名称:SelectedIndex感谢Paul的睿智话语。你似乎能解决这个问题吗?如果你在下拉列表中至少有四个选项,那么这应该是有效的。