我使用 System.Windows.Forms.ComboBox 并且遇到了一些奇怪的意外行为。在 c# 中,我动态地将一些组合框添加到我的表单并将它们绑定到一个列表。我设置的唯一字段是 DataSource、ValueMember 和 DisplayMember。出于某种原因,在我绑定到列表后,第一项被选中。我无法弄清楚发生了什么。
我的代码如下所示:
Control c = new System.Windows.Forms.ComboBox();
循环遍历我所有的控件,
if (c?.GetType() == typeof (ComboBox))
{
BindComboBox((ComboBox) c);
}
private void BindComboBox(ComboBox sender)
{
DataTable table = DataGateway.GetTables(1);
sender.DataSource = table;
sender.ValueMember = "ID";
sender.DisplayMember = "Name";
//sender.SelectedIndex = -1; I tried with this and without this
}
我也尝试了第二种方法,但同样的事情正在发生 -
private void BindComboBox(ComboBox sender)
{
List<string> hiStrings = new List<string>() {"hi", "hello", "whats up"};
sender.DataSource = hiStrings;
}