我们在WinForm开发中,很多情况下是需要只允许让用户运行一个实例,那么代码其实很简单。只需要修改Program.cs文件,代码如下
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Fm_Login()); bool noRun; //判断是否已经有需要运行一个实例,如果系统没有,则运行一个 using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out noRun)) { if (noRun) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form Login = new Fm_Login(); Login.ShowDialog();//显示登陆窗体 if (Login.DialogResult == DialogResult.OK) { Application.Run(new Fm_main()); }//判断登陆成功时主进程显示主窗口 else return; } else { MessageBox.Show("目前已有一个程序在运行,请勿重复运行程序","提示"); } } } }