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