[英]Dynamically added Dropdownlist's SelectedValue not working
我在winforms中動態創建combobox
ComboBox ddCntrl = new ComboBox();
ddCntrl.Width = 100;
ddCntrl.Name="dd_" + tpObj.RowColId;
ddCntrl.DropDownStyle = ComboBoxStyle.DropDownList;
Dictionary<int, string> DC = new Dictionary<int, string>();
DC[-1] = "N/A";
DC[0] = "Y";
DC[1] = "N";
ddCntrl.DataSource = new BindingSource(DC,null);
ddCntrl.DisplayMember = "Value";
ddCntrl.ValueMember = "Key";
ddCntrl.SelectedIndex = ddCntrl.Items.IndexOf("N");
TableLayoutPanel.Controls.Add(ddCntrl, 1, 1);
我嘗試了幾個選項來設置選定的值沒有任何作用
我嘗試了以下選項來設置選定值ddCntrl.SelectedValue =“ N”; ddCntrl.SelectedIndex = ddCntrl.FindStringExact(“ N”)
您將需要更改一些內容。 首先,如果在構造函數中使用此代碼,則需要將其移至Load
或Shown
事件。
在將comboBox添加到面板后,設置索引。 ddCntrl.FindStringExact("N")
應該可以正常工作:
ComboBox ddCntrl = new ComboBox();
ddCntrl.Width = 100;
ddCntrl.Name = "dd_";
ddCntrl.DropDownStyle = ComboBoxStyle.DropDownList;
Dictionary<int, string> DC = new Dictionary<int, string>();
DC[-1] = "N/A";
DC[0] = "Y";
DC[1] = "N";
ddCntrl.DataSource = new BindingSource(DC, null);
ddCntrl.DisplayMember = "Value";
ddCntrl.ValueMember = "Key";
tableLayoutPanel.Controls.Add(ddCntrl, 1, 1);
ddCntrl.SelectedIndex = ddCntrl.FindStringExact("N");
由於您要綁定到詞典,因此應如下設置所選項目: ddCntrl.SelectedItem = DC[1];
如果要根據顯示值進行設置(我真的不建議這樣做),則必須在DC中找到它,然后將其設置為ddlCntrl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.