大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我们平时用的QQ、飞信、微信等等,都有一个登陆界面,我们今天就做了一个简单的登陆窗体,在关注登陆窗体的时候,我们要知道,登录窗体只是一个界面、一个验证的过程,重要的还是登陆以后在主窗体上我们要干什么。
成都创新互联专注于曲阜网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供曲阜营销型网站建设,曲阜网站制作、曲阜网页设计、曲阜网站官网定制、微信小程序服务,打造曲阜网络公司原创品牌,更为您提供曲阜网站排名全网营销落地服务。
在登陆之后,转到主窗体,开始进行我们要干的事,在这里我们是要把登录窗体的登陆名传到主窗体上。这里我们的传递是通过类传递的(对窗体的具体操作都在类中),类之间传递参数或值得时候有五种方法:构造方法、公开的字段、公开的属性、公开的方法、委托。
先看我们做的登陆窗体:
下来我们就要写登陆窗体中的各种Click事件,并在登陆成功后将登录窗体中的登录名传递到主窗体中去:
//声明一个委托用来传值 public delegate void SendLoginIdHandler(string loginId); public partial class frmLogin : Form { //定义一个事件 public event SendLoginIdHandler SendLoginIdEvent; public frmLogin() { InitializeComponent(); } bool flag = false; ////// 确定按钮的Click事件,我们要通过点击确定按钮, /// 来触发这个事件,并判断输入的用户名和密码是否正确 /// 在这里我们就先默认用户名和密码都是admin是输入正确 /// /// /// private void btnOK_Click(object sender, EventArgs e) { //获取用户输入的值 string loginId = this.txtLoginId.Text; string loginPwd = this.txtLoginPwd.Text; //判断用户名和密码是否正确,不正确的话显示一个模态窗体并显示登录名或密码错误 if (!(loginId=="admin"&&loginPwd=="admin")) { MessageBox.Show("登录名或密码错误"); //登录名或密码错误后返回,让用户重新输入 return; } //如果能走到这一步,说明输入正确,登陆就可以结束了,登录窗体关闭,下面就显示主窗体 flag = true; //如果事件不是空的,就激发事件 if (SendLoginIdEvent!=null) { SendLoginIdEvent(loginId); } this.Close(); } ////// 登录窗体的FormClosing事件,当flag==false的时候,说明登录失败, /// 那么接下来在关闭登录窗体的时候,退出整个应用程序。 /// /// /// private void frmLogin_FormClosing(object sender, FormClosingEventArgs e) { if (flag==false) { Application.Exit(); } } ////// 取消按钮的Click事件,点击关闭登陆窗体 /// /// /// private void btnCancel_Click(object sender, EventArgs e) { this.Close(); }
下面来看主窗体中的代码:
public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { //创建一个登录窗体的对象 frmLogin frm = new frmLogin(); //订阅事件 frm.SendLoginIdEvent += new SendLoginIdHandler(frm_SendLoginIdEvent); //显示登录窗体 frm.ShowDialog(); } void frm_SendLoginIdEvent(string loginId) { //通过委托传进来的值 this.label1.Text = loginId; }
这个就是登陆成功后传进来的登录名。
P.S.登录窗体:1:不要太大,没有最小化和最大化按钮;(要美观,我们平时见到的登录窗体都大小适中)
2:要固定大小;(Windows窗体要报位置固定好)
3:窗体在正中间;
4:类名要规范;
5:要注意格式(天高地厚,左青龙右白虎)