Windows窗体:Focus和Show无法正常工作

时间:2011-07-07 20:48:32

标签: c# winforms

我有一个带有许多控件和表单的MultiThreaded应用程序。我有一个重新注册的事件,将在要显示的表单上调用Show Method。当事件第一次发生时,它执行Show方法,但是表单没有显示,但现在如果事件再次触发(第2,第3 ......),则显示表单。

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


第二个问题

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

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

1 个答案:

答案 0 :(得分:0)

您是否从与创建表单的线程不同的线程调用Show()?通常,Windows窗体控件不是线程安全的,行为是不可预测的。如果必须的话,有几种方法可以做到这一点。我建议你阅读这篇关于如何进行线程安全调用的MSDN文章:How to: Make Thread-Safe Calls To Windows Forms Controls