首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果表单出现,NotifyIcon不会隐藏

如果表单出现,NotifyIcon不会隐藏
EN

Stack Overflow用户
提问于 2015-02-12 12:50:54
回答 2查看 709关注 0票数 0

我做了一个模式,如果我的应用程序的form2最小化,NotifyIcon就会出现在系统托盘中,这个工作非常好。当用户对其执行双击时,NotifyIcon会消失,稍后form2会再次出现。问题是,如果表单最小化,用户双击form1 no打开NotifyIcon,但通过导航菜单,表单将正确显示,但NotifyIcon不会消失。我已经看到,如果我再次最小化表单,我在系统托盘中也有两个NotifyIcon。这会发生什么?

双击代码(工作正常)- form1

代码语言:javascript
复制
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

代码语言:javascript
复制
Private Sub RisultatiToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles RisultatiToolStripMenuItem3.Click
        Dim res As New Risultati
        res.de_active()
    End Sub

form2 de_active函数(在示例中是Risultati形式)

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2015-02-12 15:39:42

听起来,您最终得到的是表单的多个实例,每个实例都有自己的NotifyIcon。工具栏按钮的代码实际上正在创建窗体的新实例。如果不需要表单的多个实例,则需要在引用中保留一个变量,并隐藏或显示该引用,而不是每次想要显示引用时都创建一个新的引用。

票数 2
EN

Stack Overflow用户

发布于 2015-02-12 16:01:49

我已经修正了在调整大小的表单上添加一个处理程序:

代码语言:javascript
复制
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 Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28477958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档