利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

时间:2021-08-06 05:37:04

比来做了一个关于软件最小化到托盘里的成果,对此做了一点小小的总结,关于如何将软件最小化托盘里,并且点击对应小图标会有许多可供选择的菜单,其实主要用的控件是就NotifyIcon控件与contextMenuStrip控件的结合使用,操作contextMenuStrip控件添加对应的菜单以及菜单对应的成果。

第一步:首先介绍一下NotifyIcon控件的属性:

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

BalloonTipIcon —— 气泡提示的类型,有None(无)、Info(蓝色感伤号)、Warnning(黄色感伤号)、Error(小红叉)

好比:此图从别处借用

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

BalloonTipText —— 气泡提示的内容,如上图的None等气泡类型信息;

BalloonTipTitle —— 气泡提示的标题,如上图的Tip;

ContextMenuStrip —— 绑定的右键菜单;

Icon —— 所显示的图标;

Text —— 鼠标移上去时,显示的提示信息;

Visible —— 是否显示图标,固然,不显示就看不到了。

第二步:介绍如何使用NotifyIcon控件

首先添加一个click事件

private void notifyIcon1_Click(object sender, EventArgs e) { //EventArgs担任自MouseEventArgs,所以可以强转 MouseEventArgs Mouse_e = (MouseEventArgs)e; //点鼠标右键,return if (Mouse_e.Button == MouseButtons.Left) { ShowForm(); } } private void ShowForm() { try { if (CommonClass.OpenFormName == "LoginForm") { this.Show(); this.WindowState = FormWindowState.Normal; } else if (CommonClass.OpenFormName == "MainForm") { foreach (Form frm in Application.OpenForms) { if (frm.Name == "MainForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; } } } else { foreach (Form frm in Application.OpenForms) { if (frm.Name == "StepNewRegisterForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; frm.Activate(); } } } this.notifyIcon1.Visible = false;// 隐藏措施小图标 } catch (Exception ex) { //XtraMessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK); } }

  

第三步:

在使用NotifyIcon控件时,经常需要用到快捷菜单(ContextMenu控件)。添加快捷菜单,如下图:

1.添加右键菜单

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

2.将右键菜单和小图标绑定

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

3.如何为菜单项添加点击事件,法式如下:

利用contextMenuStrip控件添加对应的菜单以及菜单对应的功能

单击事件具体措置惩罚惩罚逻辑:

private void ShowForm() { try { if (CommonClass.OpenFormName == "LoginForm") { this.Show(); this.WindowState = FormWindowState.Normal; } else if (CommonClass.OpenFormName == "MainForm") { foreach (Form frm in Application.OpenForms) { if (frm.Name == "MainForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; } } } else { foreach (Form frm in Application.OpenForms) { if (frm.Name == "StepNewRegisterForm") { frm.Show(); frm.WindowState = FormWindowState.Normal; frm.Activate(); } } } this.notifyIcon1.Visible = false;// 隐藏措施小图标 } catch (Exception ex) { } }

第四步:如安在软件最小化时添加自界说提示内容:  

public void HideForm() { try { //显示小图标 this.notifyIcon1.Visible = true; //隐藏窗体 this.hide(); //打消在任务栏中显示 this.ShowInTaskbar = false; //最小化到托盘的显示内容 notifyIcon1.ShowBalloonTip(3000, "措施最小化提示", "图标已经缩小到托盘,打开窗口请双击图标即可。也可以使用Alt+S键来显示/隐藏窗体。", ToolTipIcon.Info); } catch (Exception ex) { } }

 第五步:在法式四中提到了一点快捷键的对象,由于所知不久不多,恐表达有误,就直接贴代码吧,留给本身堆集一下,,此处我借助了一个老项目封装的dll

private RegisterHotKeyHelper hotKey2 = new RegisterHotKeyHelper(); #region --插手快捷键 /// <summary> /// 设置Alt+S的显示/隐藏窗体全局热键 /// </summary> private void SetHotKey() { try { hotKey2.Keys = Keys.S;//可任意设置你想用的字母键 hotKey2.ModKey = RegisterHotKeyHelper.MODKEY.MOD_ALT; hotKey2.WindowHandle = this.Handle; hotKey2.WParam = 10003; hotKey2.HotKey += new RegisterHotKeyHelper.HotKeyPass(hotKey2_HotKey); hotKey2.StarHotKey(); } catch (Exception ex) { } }

以上内容仅作为学习堆集,但愿也能辅佐到大家。