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

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

//用委托实现的主要代码
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)
        {

        }
    }


猜你喜欢

转载自275055162.iteye.com/blog/2214735
今日推荐