VB.net表单还原不显示表单

时间:2009-10-26 22:10:17

标签: vb.net

我目前正在使用VB.Net 2008.
该项目已选中“make single instance application”复选框。

应用程序通过在窗体最小化时隐藏窗体来工作。

Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    If Me.WindowState = FormWindowState.Minimized Then
        Me.Hide()
    End If
End Sub

当在通知图标中按下适当的菜单项时,表单应该再次显示。

     Private Sub ShowToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _  
                         Handles ShowToolStripMenuItem.Click
            Me.Show()
            Me.WindowState = FormWindowState.Normal
       End Sub  

这样可以正常工作,直到用户尝试在窗体最小化时打开同一个应用程序。当发生这种情况时,应用程序将阻止用户试图按预期打开的应用程序的新实例,但是当用户然后从notifyicon的菜单显示该表单时,它似乎打开(它显示任务栏中的表单) )但没有显示窗口。

此时窗口可以最大化并按预期工作,但是使用恢复按钮不会绘制窗口,但仍会显示在任务栏中。

如果可以提供有关如何正确恢复表单的任何帮助,我们将非常感激。

提前致谢

1 个答案:

答案 0 :(得分:0)

只是一些建议......

您可以使用表单的ShowInTaskbar属性而不是使用Hide()和Show()吗?

在使用Hide()时将其设置为false,在当前使用Show()的位置设置为true,并查看是否有任何区别。

或者在调用Show()之前将WindowState设置为Normal。