There are two comboboxes. one is created by drag&drop and set event SelectedIndexChanged. And 2nd combobox is created manually, but not given any event. But when I change 2nd combo, it's firing an event for 1st combo's function.

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();

I tried, but not working:

cmBox.SelectedIndexChanged -= new System.EventHandler(comboBox1_SelectedIndexChanged);

P.S: They are using same bindsource.

有帮助吗?

解决方案

If they're sharing a BindingSource, then changing the value in one control will change the value in the other control as well.

When you change the value in the second ComboBox, the value in the first ComboBox changes too, which fires its SelectedIndexChanged event.

Create a separate BindingSource for each control, or if it's a collection, try just assigning the collection directly to each ComboBox.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top