当我将值写入ComboBox时,不会触发SelectedIndexChanged事件。当我从comboBox.Items列表中选择一个值时,它会触发

时间:2019-07-09 11:47:56

标签: c# events combobox

我有一个带有整数列表的ComboBox作为其数据源。该列表包含从0到255的整数。 当我从下拉列表中用鼠标选择一个值时,将触发该事件。 另一方面,当我将一个值写入ComboBox时,该事件不会触发。在两种情况下均不会触发事件SelectionChangeCommitted。 请给我一个解释。 预先谢谢你。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码段创建此事件:

    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");
    }

我在此示例中定义了事件表单,您可以在单独的类中使用它。 祝你好运