繁体   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