C# C组合框适当的事件类型

C# C组合框适当的事件类型,c#,combobox,C#,Combobox,我有一个组合框,我有一个关联的事件 private void comboBox8_SelectedIndexChanged(object sender, EventArgs e) { } 我的文本框中填充了两个项目a和b 我正在设置combobox8.selectedItem=x,其中x=a或b。仅当我从b中选择a或从a中选择b时,我的事件才会激发。如果我再次从a中选择a,则不会触发 我该怎么做?什么是适当的事件来处理 而且,我是通过编程来完成的。因为它所选的索引更改了事件。从a到a什么都没有

我有一个组合框,我有一个关联的事件

private void comboBox8_SelectedIndexChanged(object sender, EventArgs e)
{
}
我的文本框中填充了两个项目a和b

我正在设置combobox8.selectedItem=x,其中x=a或b。仅当我从b中选择a或从a中选择b时,我的事件才会激发。如果我再次从a中选择a,则不会触发

我该怎么做?什么是适当的事件来处理


而且,我是通过编程来完成的。

因为它所选的索引更改了事件。从a到a什么都没有改变。您可以尝试onclick事件。

事件不会再次触发是有道理的。所选项目不会更改。根据你真正想要的,有。例如,你可以从,或,或开始

它不会激发,因为所选索引没有更改

查看msdn文档以获取组合框事件列表:


您会发现,根据您想要实现的目标,您可以使用多个选项:leave、lostfocus、[…]

,因为索引没有更改,所以不会触发事件。由于以编程方式刷新表单时需要此处理,因此也可以以编程方式调用相应的代码:

private void comboBox8_SelectedIndexChanged(object sender, EventArgs e)
{
    ProcessComboBoxInput();
}

private void RefreshFormProgrammatically()
{
    // Refresh the form here...
    ProcessComboBoxInput();
}

private void ProcessComboBoxInput()
{
     // Process the comboBox8 here...
}

可能要将代码移动到。请改为单击事件。。尝试将代码移到那里,或者将所选的值更改为您在此事件中正试图执行的操作。值没有更改-这就是它没有被激发的原因-感觉就像你只是在错误的地方做了一些事情。如果你从a转到a,所选索引没有更改,因此SelectedIndex changed不会激发。实际上我正在刷新表单,如果comboBox的值相同,我会相应地执行代码。