簡體   English   中英

動態添加的Dropdownlist的SelectedValue不起作用

[英]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”)

您將需要更改一些內容。 首先,如果在構造函數中使用此代碼,則需要將其移至LoadShown事件。

在將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM