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);
}
}
* 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);
}
}
运行结果如下: