我正在使用Visual Studio 2010在Windows 7上构建C#Windows窗体应用程序(而不是WPF)
我的应用程序包含一个ComboBox
我想显示代码和说明列表。
我希望下拉列表显示代码和说明,但我希望文本框中的选定项目只显示代码。
我希望下拉列表比文本框宽,如image所示
我希望下拉列表向文本框显示不同的数据,如此image所示 - 只显示相关代码而不是图标,其中每个代码都由一个大写字母组成。 />
我猜我需要组合[ComboBox]属性 DisplayMember , ValueMember 和可能 DropDownWidth 以及<的处理程序em> SelectedIndexChanged 事件。正确吗?
哦,是的,为了使用 DisplayMember 和 ValueMember 属性,我还需要使用 DataSource 属性。对?
谢谢,
阿维。
答案 0 :(得分:0)
在将值设置为ComboBox时使用分隔符,即此字符串中的"This is value => this is description"
,=>
是分隔符,您可以根据此分隔符拆分此值,以显示项目的第一部分或最后部分。
答案 1 :(得分:0)
使用将显示为ComboBox
项的数据创建类,并覆盖其ToString()
方法,如下所示:
public class ComboItem
{
public string Text { get; set; }
public int ID { get; set; }
public string Description { get; set; }
public override string ToString()
{
return Text;
}
}
然后,在示例中的page load
事件
ComboItem ci = new ComboItem() { ID = 1, Text = "code number 1", Description = "Description of item number 1" };
comboBox1.Items.Add(ci);
ci = new ComboItem() { ID = 2, Text = "code number 2", Description = "Description of item number 2" };
comboBox1.Items.Add(ci);
在需要时提取描述(即,当用户从组合框中选择某些内容时):
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ComboItem ci = comboBox1.SelectedItem as ComboItem;
string description = ci.Description; //here's your description
}