如何用委托实现登陆窗口后将一些值传递给主窗口

本文介绍了一个简单的登录窗体实现方式,通过定义自定义事件及事件参数类,在登录成功时触发事件更新主窗体标题。
ExpandedBlockStart.gif 代码
 1  public   partial   class  frm_Login : Form
 2      {
 3           public   class  TitleChangedEventArgs : EventArgs  // 事件参数类
 4          {
 5               private   string  title  =   "" ;
 6               public   string  Title
 7              {
 8                   get
 9                  {
10                       return  title;
11                  }
12                   set
13                  {
14                      title  =  value;
15                  }
16              }
17          }
18           public   delegate   void  TitleChangedEventHandler( object  sender, TitleChangedEventArgs e);
19           public   event  TitleChangedEventHandler TitleChanged;
20           public  frm_Login()
21          {
22              InitializeComponent();
23          }
24 
25           // 该方法为登录按钮事件
26           private   void  btn_Ok_Click( object  sender, EventArgs e)
27          {
28              TitleChangedEventArgs e1 = new  TitleChangedEventArgs();
29              e1.Title = " Login sucessed " ;
30              OnTitleChanged(e1);   // 触发事件
31               this .Close();
32          }
33 
34           protected   virtual   void  OnTitleChanged(TitleChangedEventArgs e)
35          {
36               if  (TitleChanged  !=   null )
37                  TitleChanged( this , e);
38          }
39      }
40 
41  主窗体中订阅这个事件就可以了:
42       public   partial   class  frm_Main : Form
43      {
44           private  frm_Login loginForm  =   new  frm_Login(); 
45           public  Form1()
46          {
47              InitializeComponent();
48              loginForm.TitleChanged  +=   new  frm_Login.TitleChangedEventHandler(FormTitleChanged);
49          }
50 
51           protected   void  FormTitleChanged( object  sender, frm_Login.TitleChangedEventArgs e)
52          {
53               this .Text  =  e.Title;
54          }
55 
56           private   void  button1_Click( object  sender, EventArgs e)
57          {
58              loginForm.Show();
59          }
60      }

 

转载于:https://www.cnblogs.com/zs851/archive/2010/04/15/1713083.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值