用接口和委托两种方式实现用户登录
2015-05-27 12:24
267 查看
-------------------------------------------------------------------
//用委托实现的主要代码
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)
{
}
}
//用委托实现的主要代码
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)
{
}
}
相关文章推荐
- 网页用户登录权限校验的两种实现方式
- asp.net mvc 实现判断用户是否登录的两种方式
- java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Android-动态加载插件化的两种实现方式(二):接口
- 详解vsftp服务器通过匿名用户、本地用户、虚拟用户三种登录方式实现文件传输
- 线程实现的两种方式——用户空间和内核中
- mybatis的两种实现方式:dao接口方式+dao实现方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- JDK实现多线程编程的两种方式:实现Runnable接口和实现Callable接口
- 创建子线程的两种方式:类实现runnable接口或是类继承Thread类
- 集合框架_用户登录注册案例详细分析和分包的实现、用户基本描述类和用户操作接口的实现、用户操作类的具体实现、用户测试类的实现、加入猜数字小游戏
- 浅谈Observer模式的实现.基于继承和基于事件/委托的两种方式
- 微信网页扫码登录的实现(两种方式)
- 用Python实现用户登录接口
- Spring实现Aware接口自定义获取bean的两种方式
- 创建线程的两种方式(实现接口的方式请看实例分析5)
- 线程实现的两种方式 —— 用户空间和内核中
- 线程 创建和启动线程的两种方式 实现Runnable接口 继承Thread类 重写唯一方法run()
- JNI接口的两种实现方式