我使用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;
}
當我設置'sender.SelectedIndex = -1'我得到了3空白的組合框,我不能複製這個行爲下拉列表中的值。在循環之後,你是否在做一些事情? –
我只是設置了控件名稱,然後將此控件添加到devex layoutcontrolItem,然後添加到devex LayoutControlGroup,然後添加到devex LayoutControl –
抱歉,我不確定我可以提供其他任何東西。我嘗試將控件添加到flowLayoutPanel,然後通過控件循環到BindCombobox方法。甚至嘗試在添加到flp之前創建控件並進行綁定。兩個項目集合中的物品均未放置在空白組合框中。這是使用method2。我會建立一個DS並嘗試這種方式,但我認爲結果將是相同的。 SelectedIndex-1應該可以工作。 –