C#实现托盘程序并禁止多个应用实例运行的方法
本文实例讲述了C#实现托盘程序并禁止多个应用实例运行的方法。分享给大家供大家参考,具体如下:
托盘程序的制作:
1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果)
2.窗体关闭时,将程序最小化到系统托盘上
privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse) { //MessageBox.Show("程序将最小化到系统托盘区"); e.Cancel=true;//取消关闭窗体 this.Hide(); this.ShowInTaskbar=false;//取消窗体在任务栏的显示 this.notifyIcon1.Visible=true;//显示托盘图标 }
3.放一个上下文菜单,添加几个基本项,"显示主窗体","退出",将这个菜单挂到NotifyIcon上
privatevoidmenuShow_Click(objectsender,EventArgse) { this.Show(); this.ShowInTaskbar=true; this.notifyIcon1.Visible=false; } privatevoidmenuExit_Click(objectsender,EventArgse) { this.Dispose(true); Application.ExitThread(); }
4.左键单击托盘图标时,显示主窗体,右击时当然是弹出上面设置的菜单
privatevoidnotifyIcon1_MouseClick(objectsender,MouseEventArgse) { if(e.Button==MouseButtons.Left) { this.Show(); this.ShowInTaskbar=true; this.notifyIcon1.Visible=false; } }
防止这个程序同时运行多个
usingSystem; usingSystem.Collections.Generic; usingSystem.Windows.Forms; usingSystem.Threading; namespaceLuceneTest { staticclassProgram { ///<summary> ///应用程序的主入口点。 ///</summary> [STAThread] staticvoidMain() { boolbCreatedNew; Mutexm=newMutex(false,"Product_Index_Cntvs",outbCreatedNew); if(bCreatedNew) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(newForm1()); } } } }
希望本文所述对大家C#程序设计有所帮助。