显示新的WinForms窗口但不让它获得焦点

4

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

谢谢!

2个回答

3

在显示新表单后设置焦点可以正常工作。我的任务栏不会闪烁。

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

您为什么想将焦点重新放在主窗体上呢?因为新窗体默认会绘制在主窗口的顶部,您必须关闭或移动新窗体才能查看主窗口。


0

如果你想要实现类似于Office 2007中的“超级”工具提示,那么最好使用已经实现了这一功能的第三方库。另一个选择可能是将窗口创建为NativeWindow,并使用Interop调用与其交互。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接