我有一个方法可以获取ComboBox
对象并在其项目上加载查询。
该方法还要求另外2项:
1.数据库表的列名并将其设置为Combobox
的{{1}}属性
2.该数据库表格列名下每条记录的ID,并将其设置为DisplayMember
' s Combobox
属性
ValueMember
我通过创建一个包含2列的查询来使用该方法,即Id及其对应的Name。并将其存储在public void DatabaseColumnRecordsToCombobox(ComboBox cbx, String query, String displayMember, String valueMember)
{
try
{
cmd = new MySqlCommand(query, connection);
da = new MySqlDataAdapter(cmd);
tbl = new DataTable();
da.Fill(tbl);
cbx.DataSource = tbl;
cbx.DisplayMember = displayMember;
cbx.ValueMember = valueMember;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
this.CloseConnection();
}
}
ComboBox
和DisplayMember
中:
ValueMember
我为长篇介绍道歉,我只是希望大家在讲述我的问题之前了解我的计划是如何运作的。问题是如何使用DatabaseColumnRecordsToCombobox(cmbSupplier, "SELECT Id, Supplier_Name FROM Supplier WHERE Enable_Flag=1 ORDER BY Supplier_Name", "Supplier_Name", "Id");
DataGridView
属性选择ComboBox
的默认项?
我以编程方式选择项目时所知道的只是使用ValueMember
,但我需要的是使用cmbCategory.SelectedItem = "Supplier A"
进行选择。这样我可以通过Id设置默认项目。
答案 0 :(得分:1)
只需使用SelectedValue:
comboBox1.SelectedValue = "2";
一个非常简单的例子,只是为了表明我的意思:
DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("Id");
dt.Columns.Add("Supplier_Name");
DataRow r = dt.NewRow();
r["Id"] = "1";
r["Supplier_Name"] = "Supplier A";
dt.Rows.Add(r);
r = dt.NewRow();
r["Id"] = "2";
r["Supplier_Name"] = "Supplier B";
dt.Rows.Add(r);
r = dt.NewRow();
r["Id"] = "3";
r["Supplier_Name"] = "Supplier C";
dt.Rows.Add(r);
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Supplier_Name";
comboBox1.ValueMember = "Id";
//This will set the ComboBox to "Supplier B"
comboBox1.SelectedValue = "2";