显示新的WinForms窗口未聚焦

时间:2008-11-05 17:22:25

标签: c# winforms

我正在主窗口上生成并显示一个新的WinForms窗口。如何实现原始(主窗口)保持焦点?在显示新窗口后重新设置焦点并不能解决我的问题,因为我需要阻止主窗口的标题栏闪烁。新窗口必须保持在主窗口的顶部,所以我必须设置topMost = true。但是,这对我认为的问题没有任何影响。

谢谢!

2 个答案:

答案 0 :(得分:3)

显示新表单后设置焦点正常。我的任务栏没有闪烁。

private void button1_Click(object sender, EventArgs e)
{
     Form2 f2 = new Form2();
     f2.TopMost = true;
     f2.Show();
     this.Focus();            
}

我可以问你为什么要将焦点设置回主窗体,因为默认情况下,新窗体将在主窗口的顶部绘制,你必须关闭或移动新窗体才能查看主窗体窗口。

答案 1 :(得分:0)

如果您尝试在Office 2007中实现与“超级”工具提示类似的功能,那么使用已经执行此操作的第三方库可能会更好。另一个选项可能是将窗口创建为NativeWindow并使用互操作调用与其进行交互。