事件的基本使用(+= / -=)#
来源:
D:\study\C#1\WinForm\stu0804\事件使用、stu0804\练习\WinForms学习笔记.md
1. 什么是事件#
事件就是「某个操作发生时的通知」。比如点击按钮、按键盘、窗口加载等。
事件的三要素#
事件处理方法的签名#
sender:是谁触发了这个事件(object 类型,通常需要强转成具体控件类型)EventArgs e:事件携带的额外信息(键盘事件里用它来获取按了哪个键)
2. 订阅与取消事件#
// 订阅事件(绑定处理方法)
btnTest.Click += new EventHandler(btnTest_Click);
// 取消订阅(解除绑定,之后点击不再触发)
btnTest.Click -= new EventHandler(btnTest_Click);
💡
+=可以绑定多个方法,触发时按顺序执行;-=只移除指定的那个。
3. 完整示例#
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 事件处理方法:点击按钮弹出提示
private void btnTest_Click(object sender, EventArgs e)
{
MessageBox.Show("按钮被点击了");
}
// 取消绑定
private void button1_Click(object sender, EventArgs e)
{
this.btnTest.Click -= new EventHandler(this.btnTest_Click);
}
// 重新绑定
private void button2_Click(object sender, EventArgs e)
{
this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
}
}
4. 常用事件的绑定方式#
// 按钮点击事件
button1.Click += new EventHandler(button1_Click);
// 窗体加载事件(窗体打开时自动触发)
this.Load += new EventHandler(Form1_Load);
// 键盘释放事件(松开按键时触发)
button3.KeyUp += new KeyEventHandler(button3_KeyUp);
// 文本变化事件(输入内容时触发)
textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
5. 设计器绑定 vs 代码绑定#
| 方式 | 做法 | 特点 |
|---|---|---|
| 设计器绑定 | 属性窗口 → 闪电图标 → 双击事件 | 自动生成方法,代码写在 Designer.cs |
| 代码绑定 | 控件.事件 += 方法 |
灵活,可动态添加/移除 |
💡 学习阶段建议都用代码绑定,能清楚理解事件的机制;实际开发常用设计器绑定。
相关笔记#
- 事件 — 事件基础(控制台)
- 事件的联动响应与 sender — sender 联动
- MessageBox 消息框 — MessageBox