如何编写通过代码添加的控件的事件处理函数?

摘要:0 背景 这两天在重新复习事件,比如Winform控件的事件,利用vs很方便地实现。比如:想要在窗体加载时,修改窗口的标题;我们只需要双击Form1的标题栏即可; vs便会给我们生成如下代码,且光标自动定位到方法体中: private vo
0 背景 这两天在重新复习事件,比如Winform控件的事件,利用vs很方便地实现。比如:想要在窗体加载时,修改窗口的标题;我们只需要双击Form1的标题栏即可; vs便会给我们生成如下代码,且光标自动定位到方法体中: private void Form1_Load( object sender, EventArgs e ) { } 然后我们在方法体中写上修改窗口标题的代码: private void Form1_Load( object sender, EventArgs e ) { this.Text = "通过代码添加的控件的事件"; } 运行即可看到效果: 然后我在想,如果是我通过代码添加的控件,比如一个button1,一个texbox1控件,那么在设计时虚拟窗体并不能看到他们,我怎么给他添加事件呢? 为了形成对比我们,在Form1窗体上除了代码添加的一个button1,一个texbox1控件,再手动拖拽一个button2控件; 1 给窗体添加3个控件 (1)button2直接在虚拟窗体直接上从工具箱拖上去; (2)重点说明下代码自动生成的button1和textbox1;代码如下: 先定义一个私有方法: private void CreatFormLayout(Form form,out TextBox tBox,out Button bton ) { TextBox textBox = new TextBox( ); Button button = new Button( ); textBox.Location = new Point( 1,1); textBox.Multiline = true; textBox.Size = new Size( 500,200); textBox.Font = new Font("正楷",24f); button.Location = new Point( 1,210); button.Size = new Size( 300,80); button.Text = "我是代码自动生成的按钮,请按我!"; tBox = textBox;//textBox输出到对象tBox bton = button;//button输出对象到bton form.Controls.Add( textBox); form.Controls.Add( button); } 在Main主程序中调用: public partial class Form1 : Form { private TextBox textBox1;//定义控件字段接受代码输出的控件 private Button button1; public Form1( ) { InitializeComponent( ); CreatFormLayout(this, out textBox1, out button1); 2 给代码添加的button1添加事件: this.button1.Click += Button1_Click;//事件的第四步——挂接事件 Note:小窍门—— ------> ------> 我们在button1的事件处理器(响应事件的方法)中写入代码: this.textBox1.Font = new Font("华文新魏", 22.2f, FontStyle.Bold); this.textBox1.Text = "我响应了button1按下的事件。
阅读全文