使用MDI WinForm应用程序的奇怪TaskBar行为

时间:2012-03-30 10:22:28

标签: c# winforms mdi taskbar mdiparent

所有,我已经超过了MDI WinForm应用程序的一半,并且已经开始在几台不同的机器上测试我们目前所拥有的内容,并且我在所有机器上都发现了以下错误(运行Windows 7 / Vista)。该错误与TaskBar及其中应用程序的可见活动状态有关。使用图片会更容易:

一个。我将鼠标悬停在准备启动的任务栏上。

Hovering over the application icon (mouse not displayed)

B中。我点击应用程序,它没有启动任何问题,并在任务栏中显示 - 到目前为止一切都很好。

Launches with no problem

℃。等待大约三秒钟,图标逐渐消失,因此当我点击它时,它会启动我的应用程序的另一个实例,而不是恢复我刚刚打开的那个!一旦我点击表格并最小化然后恢复表格,这个问题就会消失!?

Active icon on the Task Bar dies a death

这很奇怪,我不知道如何修复它。当使用.exe文件启动应用程序时,这也会显示出来,在您单击应用程序主窗体之前,任务栏根本不会显示。我真的很难过。如果有人对这里可能发生的事情有任何想法,那将是最受欢迎的吗?谢谢你的时间。

请注意。我已将问题缩小到在其他开放表单后面启动的表单。我在表单this.TopLevel = true;事件等中使用了相关选项Shown,但似乎没有任何效果......

2 个答案:

答案 0 :(得分:2)

我看到了一个类似的问题,即应用程序在首次启动时不会聚焦,并且在您单击它以激活主窗体之前不会显示在Windows 7任务栏中。

我永远无法追踪真正的原因,但将表单的Text属性的设置从OnLoad覆盖移动到构造函数使问题消失。非常奇怪,我仍然不知道为什么会发生这种情况。

不确定这是否适用于您,但我很想知道您是否也在构造函数之外设置Text。

答案 1 :(得分:2)

所有

通过添加

解决了这个问题
this.Activate();

在主要表单的finally块中(MDI父表单)Shown事件。

感谢您的时间和帮助。