Windows窗体:焦点和显示无法正常工作

本文关键字:常工作 工作 窗体 焦点 显示 Windows | 更新日期: 2023-09-27 18:01:25

我有一个包含许多控件和表单的多线程应用程序。我注册了一个事件regegister,它将在要显示的窗体上调用ShowMethod。当事件第一次发生时,它执行方法Show,但没有显示窗体,但现在如果事件再次触发(第二、第三、……(,则显示窗体。

我正在打一个简单的电话frm.Show()


第二个问题

在我的下一个应用程序中,同样的事情发生了,但第一次没有显示Focus不起作用。我尝试了以下属性:

this.WindowState = FormWindowState.Normal;
this.Focus();
//this.BringToFront();
this.TopMost = true;

Windows窗体:焦点和显示无法正常工作

是否从与创建表单的线程不同的线程调用Show((?一般来说,Windows窗体控件不是线程安全的,其行为是不可预测的。如果必须的话,有几种方法可以做到这一点。我建议您阅读MSDN上关于如何进行线程安全调用的文章:如何:对Windows窗体控件进行线程安全的调用