C#.NET中的事件2

/*
 * Created by SharpDevelop.
 * User: noo
 * Date: 2009-8-17
 * Time: 15:34
 * 
 * 事件2
 
*/

using  System ;
using  System .Windows .Forms ;
class  Test
{
    
static   void  Main() // 入口函数
    {
        Form frm
= new  Form (); // 新建一窗体
        frm.Text  = " 我的窗体 " ;
        Button btn1
= new  Button (); // 新建按钮1
        btn1.Text  = " 未点击按钮1 " ;
        btn1.Dock 
= DockStyle.Left;
        btn1.Click 
+= new  EventHandler (btn1_clicked); // 添加事件处理代理,btn1_clicked为自定义的函数名,当点击按钮的时候执行btn1_clicked中的代码,这就是代理的概念
        frm.Controls .Add (btn1); // 把按钮加入到窗体中
        frm.ShowDialog ();
    }
    
public   static   void  btn1_clicked( object  sender,System.EventArgs e) // 代理事件的自定义方法,与btn1.Click事件勾连,注意里面的参数的写法
    {
        Button btn
= (Button)sender; // sender为事件源控件,e为事件源数据。这里用显式转换
        btn.Text  = " 已点击按钮1 " ;
        Button btn2
= new  Button ();
        btn2.Text 
= " 未点击按钮2 " ;
        btn2.Dock 
= DockStyle.Right ;
        btn2.Click 
+= new  EventHandler (btn2Click);
        System.Windows .Forms .Control c
= btn.Parent ; // 其中btn.Parent获取btn的父窗体,即已经实例化了的frm窗体
        c.Controls .Add (btn2); // 把btn2按钮也加入frm窗体
    }
    
public   static   void  btn2Click( object  sender,System.EventArgs e) // 代理事件的自定义方法,与btn2.click勾连,同上写法
    {
        Button btn
= (Button)sender;
        btn.Text 
= " 已点击按钮2 " ;
        Button btn3
= new  Button ();
        btn3.Text 
= " 新建按钮3 " ;
        btn3.Dock 
= DockStyle.Fill ;
        System.Windows .Forms .Control c
= btn.Parent ;
        c.Controls .Add (btn3);
    }
}

运行结果如下:
C#.NET中的事件2

你可能感兴趣的:(.net)