ComboBox.ValueMember和DisplayMember
我该如何设置这个值? 我有一个DataTable,包含我想在combobox中设置的所有数据,但我无法找到如何设置它。
我试过了
ComboBox1.DataSource = dataTable; ComboBox1.ValueMember = "id"; // --> once hes here, he just jumps out the method ComboBox1.DisplayMember = "name";
没有编译错误,警告,没有..只是跳出来!
这是填充DataTable的查询
"Select * from "Table""
我检查了调试器并填充了数据表。 列名称是“id”和“name”。 ComboBox是空白的。 我第一次填写它!
您不应按此顺序设置列表框和/或combobox的datasource
ComboBox1.DataSource = dataTable; ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "name";
相反,这是正确的顺序:
ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "name"; ComboBox1.DataSource = dataTable;
注意:设置datasource
应该是最后一行。
如果先设置datasource
,则会触发SelectedIndexChanged
事件,您可能会收到强制转换错误或其他exception。
ComboBox1.DataSource= dt; //the data table which contains data ComboBox1.ValueMember = "id"; // column name which you want in SelectedValue ComboBox1.DisplayMember = "name"; // column name that you need to display as text
他们采取串…
ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "name";
public class ComboDeger { private string yazi; private int deger; public ComboDeger(string stryazi, int strdeger) { this.yazi = stryazi; this.deger = strdeger; } public string yazisi { get { return yazi; } } public int degeri { get { return deger; } } } private void combobox_doldur() { ArrayList ComboDegerleri = new ArrayList(); ComboDegerleri.Add(new ComboDeger("9 : NORMAL", 9)); ComboDegerleri.Add(new ComboDeger("10 : ENGELLİ", 10)); comboBox1.DataSource = ComboDegerleri; comboBox1.DisplayMember = "yazisi"; comboBox1.ValueMember = "degeri"; } private void Form3_Load(object sender, EventArgs e) { con.Open(); combobox_doldur(); // Populate the COMBOBOX using an array as DataSource. }
我遇到了同样的麻烦。 在我的情况下,SelectedIndexChanged事件触发并只是跳出该方法。 尝试不要使用SelectedIndexChanged事件。 或类似的东西:
ComboBox1.SelectedIndexChanged -= new System.EventHandler(ComboBox1_SelectedIndexChanged); ComboBox1.DataSource = dataTable; ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "name"; ComboBox1.SelectedIndexChanged += new System.EventHandler(ComboBox1_SelectedIndexChanged);
它对我有用。 =)
使用keyvalue对填充combobox
填充combobox的一种巧妙方法是将数据源设置为键值对列表。 它也可能激发使用存储在某种列表中的数据:
//Some values to show in combobox string[] ports= new string[3] {"COM1", "COM2", "COM3"}; //Set datasource to string array converted to list of keyvaluepairs combobox.Datasource = ports.Select(p => new KeyValuePair(p, p)).ToList(); //Configure the combo control combobox.DisplayMember = "Key"; combobox.ValueMember = "Value"; combobox.SelectedValue = ports[0];
也可以使用以下语法填充数据源:
ports.Select(p => new { Key = p, Value = p }).ToList();
可以使用多个列列表的更多属性名称扩展该技术。
你可以像这样指定
上述就是C#学习教程:ComboBox.ValueMember和DisplayMember分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
ComboBox1.ValueMember = "id"; ComboBox1.DisplayMember = "name";
ComboBox1.ValueMember = dataTable.Columns["id"].ColumnsName; // column name which the values are not visible ComboBox1.DisplayMember = dataTable.Columns ["name"].ColumnsName; /* column name that you need to select item by proprity : ComboBox1.SelectedItem; Or you can use easly this : ComboBox1.Text; */ ComboBox1.DataSource= dataTable; //the data table which contains data // and this should be last :)
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1017165.html