Engineer khalid Ответов: 1

Как избежать нежелательного selectedindexchanged в combobox


Hello
In form1, i added comboBox1 that has 3 items (10, 20 and 30) and a textBox1
My goal is to copy the selected item from comboBox to the textBox1 by using SelectedIndexChanged (usi.ng the mouse), the program works fine
However, when the program start the SelectedIndexChanged event is called from somewhere else. I tried to avoid this undesirable call by 
adding a variable Flag and make it equal zero in formload and in SelectedIndexChanged event I added if else statement hopping
skip that call ..I could not


Что я уже пробовал:

   private void comboSelctIndChanged(object sender, EventArgs e)
        {
//in formload i added variable Flag=0 and added all items to combobox
            if (Flag == 0)
            {
                MessageBox.Show("Flag=", Flag.ToString());
                Flag = 1;
                MessageBox.Show("Now Flag=", Flag.ToString());
            }
            else
            {
                MessageBox.Show("Flag=", Flag.ToString());
                ComboBox senderComboBox = (ComboBox)sender;
                MessageBox.Show("sender ", senderComboBox.Text);
                textBox1.Text = senderComboBox.Text;               
            }
        }

1 Ответов

Рейтинг:
4

RickZeeland

Может быть, ваш comboSelctIndChanged() пожаров для каждого добавленного элемента, когда поле со списком инициализации.
Вы можете установить флаг после этого

InitializeComponent();

Однако обычно этого не должно происходить, поэтому найдите свой код, где используется comboBox, и посмотрите, что вызывает это странное поведение.

Если вы не можете найти проблему, вот вам грязный трюк: вы можете удалить строку из form .Designer.cs
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
И поместите его в свой код после того, как вы загрузили все элементы.


Engineer khalid

Большое спасибо!