温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

登录窗体(一)

发布时间:2020-04-06 20:04:44 来源:网络 阅读:570 作者:象牙塔语录 栏目:编程语言

我们平时用的QQ、飞信、微信等等,都有一个登陆界面,我们今天就做了一个简单的登陆窗体,在关注登陆窗体的时候,我们要知道,登录窗体只是一个界面、一个验证的过程,重要的还是登陆以后在主窗体上我们要干什么。

在登陆之后,转到主窗体,开始进行我们要干的事,在这里我们是要把登录窗体的登陆名传到主窗体上。这里我们的传递是通过类传递的(对窗体的具体操作都在类中),类之间传递参数或值得时候有五种方法:构造方法、公开的字段、公开的属性、公开的方法、委托。

先看我们做的登陆窗体:

登录窗体(一)

下来我们就要写登陆窗体中的各种Click事件,并在登陆成功后将登录窗体中的登录名传递到主窗体中去:

//声明一个委托用来传值
public delegate void SendLoginIdHandler(string loginId);
public partial class frmLogin : Form
{
//定义一个事件
public event SendLoginIdHandler SendLoginIdEvent;
public frmLogin()
{
InitializeComponent();
}
bool flag = false;
/// <summary>
/// 确定按钮的Click事件,我们要通过点击确定按钮,
/// 来触发这个事件,并判断输入的用户名和密码是否正确
/// 在这里我们就先默认用户名和密码都是admin是输入正确
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 登录窗体的FormClosing事件,当flag==false的时候,说明登录失败,
/// 那么接下来在关闭登录窗体的时候,退出整个应用程序。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (flag==false)
{
Application.Exit();
}
}
/// <summary>
/// 取消按钮的Click事件,点击关闭登陆窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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:要注意格式(天高地厚,左青龙右白虎)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI