C# ComboBox.Items.Clear()之后是否有调用的事件处理程序?

C# ComboBox.Items.Clear()之后是否有调用的事件处理程序?,c#,.net,vb.net,C#,.net,Vb.net,我试图在组合框中的项目被清除并且似乎找不到合适的处理程序时触发事件 代码很简单: comboBox.Items.Clear() // Fire event here. 我尝试了SelectedIndexChanged和SelectedValueChanged,但没有成功 是否有在Clear()之后调用的事件处理程序?不幸的是,在中没有可以捕获的事件 您可以处理Win32消息: protected override void WndProc(ref Message m) { if (m.

我试图在组合框中的项目被清除并且似乎找不到合适的处理程序时触发事件

代码很简单:

comboBox.Items.Clear() // Fire event here.
我尝试了
SelectedIndexChanged
SelectedValueChanged
,但没有成功


是否有在
Clear()
之后调用的事件处理程序?

不幸的是,在中没有可以捕获的事件

您可以处理Win32消息:

protected override void WndProc(ref Message m)
{
    if (m.Msg == 0x014B /* CB_RESETCONTENT */)
    {
        // do something
    }

    base.WndProc(ref m);
}

如果没有活动,您可以拨打电话。 使用“comboBox.Items.Clear()”后,可以创建一个子集并调用它


如果您有清除内容的代码,为什么需要事件来告诉您?只需添加一个过程来做你想做的事情,并称之为事件,它更多的是告诉你用户刚刚做了什么。快速回答是我有一个特殊的类,它跟踪表单中更改的控件。构造此特殊类时,它将自身附加到每个托管控件的“更改”事件。因此,我希望清除项目的过程(清除任何选定的值)可以“附加”到此过程,而不必显式调用它(在多个不同的表单中多次调用)。请记住,
SelectedXXXXChanged
事件可以由用户操作触发;无法清除项目。ComboBox
SizeChanged
事件如何?只是好奇。@Rahul:No:
当Size属性值改变时发生
我认为这只是外部控制,而不是内部控制。好吧,这很糟糕。只是一个问题。假设我有另一个程序触发相同的消息。那么它也会在他的应用程序中触发。或者不触发?所以现在我认为这可能非常不安全。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
comboBox.Items.Clear()
AfterClear()
End Sub

Private Sub AfterClear()
'Your code
End Sub