欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WinForm中的登录实现

程序员文章站 2023-11-12 23:36:10
在一般的c/s系统中,登录功能基本上是必备功能, 总结了三种c# winform登录功能的实现方法。 第一种:在应用程序设置代码里(program.cs)将应用程序入口改成...
在一般的c/s系统中,登录功能基本上是必备功能,
总结了三种c# winform登录功能的实现方法。
第一种:在应用程序设置代码里(program.cs)将应用程序入口改成系统主窗口
听起来有点绕,就是说,在应用程序初始化时,第一个加载的页面是我们登录后的主页面。
1、在program.cs文件中设置application.run:
复制代码 代码如下:

application.run(new formmain());//设置应用程序运行时加载的窗口

2、添加登录按钮事件private void button1_click(object sender, eventargs e)代码
复制代码 代码如下:

private void button1_click(object sender, eventargs e)//登录
{
if (this.textboxpassword.text == "")
{
messagebox.show("请输入密码!");
}
else if (this.textboxusername.text=="123" && this.textboxpassword.text == "123")
{
this.dialogresult = dialogresult.ok;
this.close();
}
else
{
messagebox.show("username or password error");
}
}

3、添加主窗口formmain加载时事件代码
复制代码 代码如下:

private void main_load(object sender, eventargs e)
{
form formlogin = new login();
formlogin.showdialog();
if (formlogin.dialogresult == dialogresult.ok)//如果登录框返回dialogresult.ok
{
messagebox.show("正常登录");
}
else
{
this.close();
}
}

设计逻辑:

首先程序load主窗口formmain,这时formmain就会new一个login登录窗口并弹出窗口,然后关闭自身。在登录窗口验证用户名和密码后通过登录窗口的this.dialogresult = dialogresult.ok;并关闭登录框。关闭以后formmain的main_load事件再次判断登录框的dialogresult是否是ok,如果是则加载主窗口。

第二种:通过登录验证来控制是否是否执行application.run()。

代码如下:
复制代码 代码如下:

form formlogin = new login();
formlogin.showdialog();
if (formlogin.dialogresult == dialogresult.ok)
{
application.run(new formmain());
}
else
{
return;
}

这种方法的原理理解起来相对第一种来说要简单些,在应用程序初始化时,首先加载登录窗口并进行验证,只有验证通过才run(new formmain());

第三种:在通过登录验证后,直接将登录框隐藏(注是隐藏,this.hide()而不是this.close())。这种方法理解起来就更简单了。