目录
一 通过界面设计器事件处理添加
有2种添加方法。
1 在界面设计器上双击控件时,会添加默认的事件处理。
2 打开控件属性,手动添加事件处理响应函数
运行结果:
注意:默认的事件处理函数名可能会不够清晰明了,修改控件名后再双击或者通过属性页添加事件处理会比较好。
二 手动事件处理
以手动添加控件举例。
(1)在Form1.cs中,添加回调方法
private void OnClickedCustomButton(object sender, EventArgs e)
{
MessageBox.Show("手动添加按钮响应!");
}
(2)添加事件处理
myButton.Click += new EventHandler(this.OnClickedCustomButton);
完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private Button myButton = new Button();
public Form1()
{
InitializeComponent();
//
myButton.Text = "手动添加按钮";
myButton.Location = new Point(150, 150);
myButton.Size = new Size(100, 50);
myButton.Name = "customButton";
this.Controls.Add(this.myButton);
myButton.Click += new EventHandler(this.OnClickedCustomButton); //手动添加的事件处理
}
private void OnClickedTestButton(object sender, EventArgs e) //自动生成的回调方法
{
MessageBox.Show("测试按钮响应!");
}
private void OnClickedCustomButton(object sender, EventArgs e) //手动添加的回调方法
{
MessageBox.Show("手动添加按钮响应!");
}
}
}
运行结果:
强调:
事件处理:System.EventHandler
delegate void EventHandler(object sender, EventArgs e);
其中,sender表示事件发送者,即点中的控件;e表示事件的额外参数,比如鼠标点击的位置。
回调函数中除了函数名外,格式固定不能修改。
三 自动 VS 手动对比
自动方式:在Form1.Designer.cs中自动生成代码。
手动方式:在Form1.cs中手动添加事件处理。
注意:
- 事件处理回调时定义在Form1.cs中的
- 在GUI程序中,控制台输出不起作用。不过,在调试状态下还是可以看到控制台的打印输出(调试模式下单步运行)。