有两个组合框。一个是通过拖放和设置事件SelectedIndexChanged创建的。第二个组合框是手动创建的,但没有任何事件。但是当我改变第二个组合时,它会为第一个组合的功能发起一个事件。
Form prompt = new Form();
prompt.Width = 300;
prompt.Height = 150;
ComboBox cmBox = new ComboBox() { Left = 70, Top = 24, Width = 100, Height=150 };
cmBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
cmBox.ValueMember = "value";
cmBox.DisplayMember = "text";
prompt.ShowDialog();
我试过了,但没有工作:
cmBox.SelectedIndexChanged -= new System.EventHandler(comboBox1_SelectedIndexChanged);
P.S:他们使用相同的bindsource。
答案 0 :(得分:2)
如果他们共享BindingSource
,那么更改一个控件中的值也会更改另一个控件中的值。
当您更改第二个ComboBox
中的值时,第一个ComboBox
中的值也会发生变化,从而触发其SelectedIndexChanged
事件。
为每个控件创建单独的BindingSource
,或者如果它是一个集合,请尝试将该集合直接分配给每个ComboBox
。