C#实现托盘程序并禁止多个应用实例运行的方法
程序员文章站
2022-03-21 13:51:05
本文实例讲述了c#实现托盘程序并禁止多个应用实例运行的方法。分享给大家供大家参考,具体如下:
托盘程序的制作:
1.把notifyicon控件拉一个到窗体上,并设置no...
本文实例讲述了c#实现托盘程序并禁止多个应用实例运行的方法。分享给大家供大家参考,具体如下:
托盘程序的制作:
1.把notifyicon控件拉一个到窗体上,并设置notifyicon的icon(很重要!否则运行后看不到效果)
2.窗体关闭时,将程序最小化到系统托盘上
private void form1_formclosing(object sender, formclosingeventargs e) { //messagebox.show("程序将最小化到系统托盘区"); e.cancel = true; // 取消关闭窗体 this.hide(); this.showintaskbar = false;//取消窗体在任务栏的显示 this.notifyicon1.visible = true;//显示托盘图标 }
3.放一个上下文菜单,添加几个基本项,"显示主窗体","退出" ,将这个菜单挂到notifyicon上
private void menushow_click(object sender, eventargs e) { this.show(); this.showintaskbar = true; this.notifyicon1.visible = false; } private void menuexit_click(object sender, eventargs e) { this.dispose(true); application.exitthread(); }
4.左键单击托盘图标时,显示主窗体,右击时当然是弹出上面设置的菜单
private void notifyicon1_mouseclick(object sender, mouseeventargs e) { if (e.button == mousebuttons.left) { this.show(); this.showintaskbar = true; this.notifyicon1.visible = false; } }
防止这个程序同时运行多个
using system; using system.collections.generic; using system.windows.forms; using system.threading; namespace lucenetest { static class program { /// <summary> /// 应用程序的主入口点。 /// </summary> [stathread] static void main() { bool bcreatednew; mutex m = new mutex(false, "product_index_cntvs", out bcreatednew); if (bcreatednew) { application.enablevisualstyles(); application.setcompatibletextrenderingdefault(false); application.run(new form1()); } } } }
希望本文所述对大家c#程序设计有所帮助。