Событие SelectedIndexChanged не срабатывает, когда я записываю значение в ComboBox. Он срабатывает, когда я выбираю значение из списка comboBox.Items. - PullRequest
0 голосов
/ 09 июля 2019

У меня есть ComboBox с целочисленным списком в качестве источника данных.Список содержит целые числа от 0 до 255. Когда я выбираю значение с помощью мыши из раскрывающегося списка, происходит событие.С другой стороны, когда я записываю значение в ComboBox, событие не запускается.Событие SelectionChangeCommitted не запускается в обоих случаях.Пожалуйста, мне нужно объяснение.Заранее спасибо.

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете создать это событие, используя фрагмент кода ниже:

    public event IndexChangeHandler IndexChanged;
    public delegate void IndexChangeHandler (object s);

     private void button4_Click(object sender, EventArgs e)
    {


        Task.Run(() =>
        {
            int temp = 0; 
            while (true)
            {
                System.Threading.Thread.Sleep(2000);

                comboBox1.BeginInvoke((MethodInvoker)delegate
               {

                   if (comboBox1.Items.Count != temp)
                   {
                       IndexChanged(this);
                       temp= comboBox1.Items.Count;
                   }
               });
            }

        });

        IndexChanged += Form1_IndexChanged;
        for (int i = 0; i < 5; i++)
        {
            comboBox1.Items.Add(i);

        }

    }

     private void Form1_IndexChanged(object s)
    {
        MessageBox.Show("Test");
    }

Я определил форму события внутри этого примера, вы можете использовать ее в отдельном классе.Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...