VB.NET紧急求救,关于托盘的程序
在VB.NET中,我在一个窗体frmMain中添加了一个icnMain(NotifyIcon控件),和cmuMain(ContextMenu控件),并在设计窗体上设置cmuMain的ContextMenu为cmuMain。cmuMain菜单项有两项:MenuItem6(还原窗体)和MenuItem8(关闭系统)
然后我再添加如下代码:
‘本意是鼠标右击托盘图标时,托盘不显示,窗体恢复原来的Normal状态,并在任务栏上显示
Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.Click
icnMain.Visible = False
Me.ShowInTaskbar = True
Me.WindowState = FormWindowState.Normal
Me.Refresh()
End Sub
’本意是如果最小花窗体时,显示托盘图标,窗体不在任务栏上显示,如果是正常情况下托盘不显示,窗体恢复原来的Normal状态,并在任务栏上显示
Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
If Me.WindowState = FormWindowState.Minimized Then
Me.ShowInTaskbar = False
icnMain.Visible = True
Else
Me.ShowInTaskbar = True
Me.Refresh()
icnMain.Visible = False
End If
End Sub
‘本意是当关闭系统时同时关闭托盘图标
Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs)
If icnMain.Visible = True Then
icnMain.Dispose()
End If
End Sub
现在问题是当窗体最小化时,鼠标右击托盘图标,窗体只在任务栏上显示,但窗体不显示,也就是窗体可以在任务栏上找到,但就是看不到窗体。请问大侠,这是怎么回事?有什么好的办法解决? 最好能提供源代码。谢谢各位了。