C#填充组合框
如何在C#中用一个数组填充组合框,该数组的display member是数组的值,value member是数组键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
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=array代码>Diane在您发布初始问题的部分发布您的代码。显示成员和值成员如何?发布了一个解释,希望这能帮助您解决问题。首先显示数组。基本上,你可以使用DataBinding
例如ControlID.DataSource=array代码>Diane在您发布初始问题的部分发布您的代码。显示成员和价值成员如何?发布了解释,希望这能帮助您。非常感谢!我可以在页面加载时设置所选索引吗?我尝试了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的睿智话语。你似乎能解决这个问题吗?如果你在下拉列表中至少有四个选项,那么这应该是有效的。