簡體   English   中英

Winform c# 中 Combobox 的意外行為

[英]Unexpected behaviour with Combobox in Winform c#

當我從任何組合框(DropDownStyle:List)中選擇一個值時,我遇到了這個問題,它會觸發所有選定的索引更改為每個 combobox,這不是問題,但是逐步完成所有組合復制我選擇的選定索引值在我進行更改的組合框中。

所有組合框都有自己的 SelectedIndexChanged 事件,例如:

Combo1:Combo1_SelectedIndexChanged,Combo2:Combo2_SelectedIndexChanged,..等。

正常行為是 select 1 combobox 中的一個值,並在 combobox 旁邊附加代碼,並在組合中附加選定索引更改事件 2 中的代碼。

我已經嘗試刪除所有組合並一一重新創建它們,但它一直在發生,即使winform中只有2個組合框。

非常感謝所有試圖提供幫助的人。(如果我的英語不好,也很抱歉)

/*Combobox1*/ 
   private void comboBox11_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            
                pDataSet = new DataSet();
                pDataSet.Clear();
                pDataSet = neProcesos.NeDataSetCajaCr(13, "", "", "", "", "");

                comboBox111.DataSource = pDataSet.Tables[0];
                comboBox111.DisplayMember = "Description";
                comboBox111.ValueMember = "ID";
                comboBox111.SelectedIndex = 0;

                if (comboBox11.SelectedIndex > 0)
                {
                    pDataSet = new DataSet();
                    pDataSet.Clear();
                    pDataSet = neProcesos.NeDataSetCajaCr(14, comboBox11.SelectedValue.ToString(), "", "", "", "");

                    comboBox111.DataSource = pDataSet.Tables[0];
                    comboBox111.DisplayMember = "Description";
                    comboBox111.ValueMember = "ID";
                    comboBox111.SelectedIndex = 0;
                }
            }
        
/*ComboBox2*/
 private void comboBox12_SelectedIndexChanged(object sender, EventArgs e)
        {
            
                pDataSet = new DataSet();
                pDataSet.Clear();
                pDataSet = neProcesos.NeDataSetCajaCr(13, "", "", "", "", "");

                comboBox121.DataSource = pDataSet.Tables[0];
                comboBox121.DisplayMember = "Description";
                comboBox121.ValueMember = "ID";
                comboBox121.SelectedIndex = 0;

                if (comboBox12.SelectedIndex > 0)
                {
                    pDataSet = new DataSet();
                    pDataSet.Clear();
                    pDataSet = neProcesos.NeDataSetCajaCr(14, comboBox12.SelectedValue.ToString(), "", "", "", "");

                    comboBox121.DataSource = pDataSet.Tables[0];
                    comboBox121.DisplayMember = "Description";
                    comboBox121.ValueMember = "ID";
                    comboBox121.SelectedIndex = 0;
                }
            }
        

示例 Gif

問題在於數據的來源。

最初是

  comboBox11.DataSource = pDataSet.Tables[0];
            comboBox11.DisplayMember = "Description";
            comboBox11.ValueMember = "ID";
            comboBox11.SelectedIndex = 0;

            comboBox12.DataSource = pDataSet.Tables[0];
            comboBox12.DisplayMember = "Description";
            comboBox12.ValueMember = "ID";
            comboBox12.SelectedIndex = 0;

然后我將其從數據集中更改為他們自己的表

  comboBox11.DataSource = pDataSet.Tables[0];
            comboBox11.DisplayMember = "Description";
            comboBox11.ValueMember = "ID";
            comboBox11.SelectedIndex = 0;

            comboBox12.DataSource = pDataSet.Tables[1];
            comboBox12.DisplayMember = "Description";
            comboBox12.ValueMember = "ID";
            comboBox12.SelectedIndex = 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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