我做了一个模式,如果我的应用程序的form2最小化,NotifyIcon就会出现在系统托盘中,这个工作非常好。当用户对其执行双击时,NotifyIcon会消失,稍后form2会再次出现。问题是,如果表单最小化,用户双击form1 no打开NotifyIcon,但通过导航菜单,表单将正确显示,但NotifyIcon不会消失。我已经看到,如果我再次最小化表单,我在系统托盘中也有两个NotifyIcon。这会发生什么?
双击代码(工作正常)- form1
Private Sub NotifyIcon1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.Show()
Me.WindowState = FormWindowState.Normal
NotifyIcon1.Visible = False
End Sub菜单导航代码在form1上
Private Sub RisultatiToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles RisultatiToolStripMenuItem3.Click
Dim res As New Risultati
res.de_active()
End Subform2 de_active函数(在示例中是Risultati形式)
Public Sub de_active()
If Application.OpenForms().OfType(Of Risultati).Any Then
Me.Show()
Me.WindowState = FormWindowState.Normal
NotifyIcon1.Visible = False
Else
Me.Show()
End If
End Sub发布于 2015-02-12 15:39:42
听起来,您最终得到的是表单的多个实例,每个实例都有自己的NotifyIcon。工具栏按钮的代码实际上正在创建窗体的新实例。如果不需要表单的多个实例,则需要在引用中保留一个变量,并隐藏或显示该引用,而不是每次想要显示引用时都创建一个新的引用。
发布于 2015-02-12 16:01:49
我已经修正了在调整大小的表单上添加一个处理程序:
Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
Select Case Me.WindowState
Case FormWindowState.Minimized
'Show NotifyIcon
Case FormWindowState.Normal
'Hide NotifyIcon
Case formWindowState.Maximized
'hide ..
End Select
End Subhttps://stackoverflow.com/questions/28477958
复制相似问题