切换Winform控件时的事件顺序

时间:2011-06-30 16:19:00

标签: c# winforms events

我在文本框中有一个“Leave”事件,甚至在列表框中也有一个“SelectedValueChanged”。从文本框到列表框,会在另一个之前触发吗?或者,他们会同时开火吗?

3 个答案:

答案 0 :(得分:1)

Leave事件将在SelectedValueChanged

之前触发

答案 1 :(得分:1)

他们不会同时开火。

在开发中打开“输出”或“立即窗口”(取决于您的调试选项),然后从您的代码中打开:

private void textBox1_Leave(object sender, EventArgs e)
{
  System.Diagnostics.Debug.WriteLine("Text Leave");
}

private void listBox1_SelectedValueChanged(object sender, EventArgs e)
{
  System.Diagnostics.Debug.WriteLine("ListBox SelectedValueChanged");
}

在“输出”或“立即”窗口中,当TextBox具有焦点时,您应该在“ListBox SelectedValueChanged”消息之前看到“Text Leave”消息,然后在ListBox中选择一个项目。

答案 2 :(得分:1)

ListBox.Enter必须先触发才能看到所选值的变化。这意味着TextBox.Leave首先触发。事件永远不会同时触发,这些是在UI线程上运行的事件,一次一个。