C# 切换Winform控件时的事件顺序

C# 切换Winform控件时的事件顺序,c#,winforms,events,C#,Winforms,Events,我在文本框上有一个“离开”事件,甚至在列表框上也有一个“SelectedValueChanged”。从文本框到列表框,一个会先触发另一个吗?或者,它们是否会同时触发?离开事件将在SelectedValueChanged之前触发离开事件将在SelectedValueChanged之前触发它们不会同时触发 在开发中打开“输出”或“即时窗口”(取决于调试选项),然后从代码中: private void textBox1_Leave(object sender, EventArgs e) { Sys

我在文本框上有一个“离开”事件,甚至在列表框上也有一个“SelectedValueChanged”。从文本框到列表框,一个会先触发另一个吗?或者,它们是否会同时触发?

离开事件将在SelectedValueChanged之前触发

离开事件将在SelectedValueChanged之前触发

它们不会同时触发

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

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

在输出或即时窗口中,当文本框具有焦点且您在下一个列表框中选择了一个项目时,您应该在“ListBox SelectedValueChanged”消息之前看到“Text Leave”(文本离开)消息。

它们不会同时触发

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

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

在输出或即时窗口中,当文本框具有焦点并且您在下一个列表框中选择了一个项目时,您应该在“ListBox SelectedValueChanged”消息之前看到“Text Leave”(文本离开)消息。

ListBox.Enter必须触发才能看到所选值的更改。这意味着文本框。先离开火。事件不能同时触发,这些事件在UI线程上运行,一次一个。

ListBox.Enter必须触发才能看到所选值的更改。这意味着文本框。先离开火。事件不能同时触发,这些事件在UI线程上运行,一次一个。

您指的是“输出”窗口的“调试”选项卡。即时窗口用于调试期间的代码执行。@Charles在我的计算机上,我选中了“将所有输出窗口文本重定向到即时窗口”。我已经相应地更新了我的答案。嗯,我从来都不知道这个选项的存在。多么奇怪的选择啊!您是指“输出”窗口的“调试”选项卡。即时窗口用于调试期间的代码执行。@Charles在我的计算机上,我选中了“将所有输出窗口文本重定向到即时窗口”。我已经相应地更新了我的答案。嗯,我从来都不知道这个选项的存在。多么奇怪的选择啊!