如题, 我的想法是,使用组件NotifyIcon来添加一个系统托盘图标,
点鼠标左键弹出一个菜单, 点击鼠标右键弹出另外一个菜单..
但是出现一个奇怪的现象: 鼠标左键点击该图标弹出的那个 ContextMenuScript , 却不能自动隐藏.
并且还会在任务栏中出现一个无标题的 "窗体", 它有时候是有焦点的,有时候没有.如果这个奇怪的“窗体”没有焦点, 那么我在点击其他地方的时候, 菜单不会消失!! (这也就意味着, 这个奇怪的“窗体”其实就是这个弹出菜单)
这是很严重的问题.
怎么让它不显示那个奇怪的“窗体”? 即使允许显示, 怎么让这个菜单能够自动隐藏?(这个菜单的AutoClose已经设置为TRUE, 程序主窗体是Hide状态, 这个NotifyIcon组件的ContextMenuScript属性已经被另一个弹出菜单占用)

解决方案 »

  1.   


            private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                this.Visible = true;
                this.WindowState = FormWindowState.Normal;
            }
            //或
            private void notifyIcon1_DoubleClick(object sender, EventArgs e)
            {
                this.Visible = true;
                this.WindowState = FormWindowState.Normal;
            }
            //在初始化代码块中写入
            this.Closing += new CancelEventHandler(MainForm_Closing);
            private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
            {
                this.Visible = false;
                e.Cancel = true;
            }
      

  2.   

    忘说了,要想点托盘图后隐藏,只要在notifyIcon1的Click事件中写入
                this.Visible = false;