实际使用

Program.cs代码

//声明一个线程
private static System.Threading.Mutex mutex;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//开启线程
mutex = new System.Threading.Mutex(true, "OnlyRun");
if(mutex.WaitOne(0, false))
{
FormLogin fl = new FormLogin();
fl.ShowDialog();
if(fl.DialogResult == DialogResult.OK)
{
Application.Run(new FormMain());
}
else
{
return;
}
}
else
{
MessageBox.Show("程序已经在运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Exit();
}
}

登录窗体(FormLogin)代码

if(textBox1.Text == "123")
{ //验证用户名密码成功
this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
this.Close(); //关闭登录窗口
}

优劣

优:1、可以防止重复运行该程序。

改进:1、根据需要是否关闭Login窗体。

其他方法一

使用Close关闭登录窗体,使用Application.Run()方法打开主窗体

Program.cs代码

FormLogin fl = new FormLogin();
fl.ShowDialog();
if(fl.DialogResult == DialogResult.OK)
{
Application.Run(new FormMain());
}
else
{
return;
}

登录窗体(FormLogin)代码

private void button1_Click(object sender, EventArgs e)
{
if(textBox1.Text == "aaa")
{ //验证用户名密码成功
this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
this.Close(); //关闭登录窗口
}
}

优劣

优:1、将登录窗体关闭,只打开主窗体。

劣:1、如果需要切换用户,还需要重新运行窗体,无法使用FormLogin.Show();方法。

其他方法二

使用Hide()方法隐藏登录窗体,使用实例化的方法打开主窗体。

优劣

最新文章

  1. HTTP的长连接和短连接——Node上的测试
  2. .Net的内置对象之一 Request
  3. 我的OpenCV学习笔记:VideoCapture类
  4. return和finally的执行顺序
  5. Android Glide数据更新及内存缓存、硬盘缓存清理
  6. Codeforces Round #267 Div.2 D Fedor and Essay -- 强连通 DFS
  7. 在 mysql 中利用 Duplicate key, 一句话实现存在的更新不存在插入功能
  8. 李洪强漫谈iOS开发[C语言-023]-取余数运算符
  9. Redis Cache 简介
  10. 胜利大逃亡(续)(状态压缩bfs)
  11. NSNotification、delegate和KVO的区别
  12. oracle系列笔记(2)---多表查询
  13. git远程仓库之添加远程库
  14. 【1414软工助教】团队作业3——需求改进&amp;系统设计 得分榜
  15. @Scheduled不执行的原因
  16. Windows Server 2016-三种方法备份还原DHCP服务器
  17. Java8-Optional与null
  18. 版本控制-git(二)
  19. React中ref的使用方法
  20. boot cd_rom struct

热门文章

  1. 【干货】linux使用nginx一个80端口部署多个项目(spring boot、vue、nuxt、微信小程序)
  2. pip递归安装报错继续安装
  3. Image Inpainting with Learnable Bidirectional Attention Maps
  4. JVM(四)-虚拟机对象
  5. 第7.12节 可共享的Python类变量
  6. 第14.13节 BeautifulSoup的其他功能导览
  7. 第15.3节 PyCharm程序调试功能介绍
  8. 第15.8节 PyQt入门学习:Designer的界面功能介绍
  9. PyQt(Python+Qt)学习随笔:Qt Designer中部件的快捷菜单策略(contextMenuPolicy)取值及含义
  10. PyQt(Python+Qt)学习随笔:Qt Designer中部件的geometry几何属性