用接口和委托两种方式实现用户登录

-------------------------------------------------------------------

//用委托实现的主要代码
namespace 委托来实现用户登录
{

public partial class UCLogin : UserControl
{
public UCLogin()
{
InitializeComponent();
}

public event LoginDelegate LoginValidating;

//点击登录按钮触发的事件
private void button1_Click(object sender, EventArgs e)
{
//1.采集用户的输入
string uid = textBox1.Text.Trim();
string pwd = textBox2.Text.Trim();



//触发验证事件
if (LoginValidating !=null )
{
LoginEventArgs evt = new LoginEventArgs();
evt.LoginId = uid;
evt.LoginPwd = pwd;
evt.IsValueOk = false;

LoginValidating(this, evt);

//根据验证事件的验证结果来设置窗体的颜色
if (evt.IsValueOk == true)
{
this.BackColor = Color.Green;
}
else
{
this.BackColor = Color.Red;
}
}



}
}

//定义一个委托
public delegate void LoginDelegate(object sender,LoginEventArgs e);


//定义一个传递参数的类型 继承于EventArgs
public class LoginEventArgs:EventArgs
{
private string _LoginId;

public string LoginId
{
get { return _LoginId; }
set { _LoginId = value;}
}

private string _LoginPwd;

public string LoginPwd
{
get { return _LoginPwd; }
set { _LoginPwd = value; }
}

private bool _IsValueOk;

public bool IsValueOk
{
get { return _IsValueOk;}
set { _IsValueOk = value; }
}

}
}


---------------------------------------------------------------------

//用接口实现的主要代码
public partial class UCLogin : UserControl
{
public UCLogin()
{
InitializeComponent();
}
//定义一个接口类型的变量 并给
private ICheckUserLogin _valiLogin;

public ICheckUserLogin ValiLogin
{
get { return _valiLogin; }
set { _valiLogin = value; }
}
private void button1_Click(object sender, EventArgs e)
{
//实现验证代码
//1.采集用户输入的信息

string uid = textBox1.Text.Trim();

string pwd = textBox2.Text.Trim();

if (this.ValiLogin !=null )
{
MyEventArg evt =new MyEventArg();
evt.id = uid;
evt.name = pwd;
evt.IsValid = false;
ValiLogin.ValidatingUserLogin(this, evt);//多态了

if (evt.IsValid)
{
this.BackColor = Color.Green;
}
else
{
this.BackColor = Color.Red;
}
}
}

private void UCLogin_Load(object sender, EventArgs e)
{

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinying888888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值