我一直在开发基于 C# 的 Windows 窗体应用程序,我需要一些帮助。我正在尝试重新创建大多数 Windows 应用程序在窗体失去父窗体焦点时出现的窗口闪烁。我可以解释这一点的最好方法是打开计算器,打开帮助窗口并尝试单击计算器,然后帮助窗口不会落后于计算器闪烁,丢失并获得边缘周围的阴影。
当单击父窗口时,我设法重新获得子窗口的焦点,但这会产生奇怪的闪烁效果,因为父窗口暂时被带到子窗口前面。我只是猜测,但我正在寻找的效果似乎是计算器永远不会出现在帮助窗口前面,然后帮助窗口只是被激活和停用几次。
我尝试进行一些搜索,并且看到了一些与此相关的主题,但没有一个解决方案完全匹配。我对制作 Windows 窗体应用程序相当陌生,所以仍然有一些我不明白的事情,所以如果我一开始不明白某些东西,请耐心等待。
先感谢您
计算器示例的详细说明:
1)从Windows附件中打开计算器
2)在工具栏中转到帮助选项卡并打开关于计算器选项
3)点击计算器窗口
4)关于计算器窗口将闪烁,同时不会落后于计算器
我在这方面取得的唯一进展是
private void MainForm_Activated(object sender, EventArgs e)
{
if (Open == true)
{
//blink active window
_addForm.Activate(); //makes window active
}
}
open 变量是我用来跟踪表单是否打开的变量,当我显示另一个表单时,该变量变为 true。
在您的示例中,“关于”窗口称为模式窗口。模态窗口会阻止用户在父窗口关闭之前与其进行交互。使用Form.ShowDialog
代替Form.Show
将表单作为模式窗口呈现给用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)