以下是 C# Windows Forms 窗体事件的进阶知识点,涵盖事件机制、高级用法、性能优化和实际场景技巧:
1. 事件的生命周期与触发顺序
Windows Forms 事件遵循特定触发顺序,理解这些顺序对复杂逻辑至关重要:
窗体启动时:
- 构造函数 →
Load
→Activated
→Shown
- 首次显示时:
Paint
事件会在Shown
后触发(当窗体需要绘制时)
窗体关闭时:
Closing
→FormClosing
→FormClosed
→Deactivate
调整大小时:
ResizeBegin
→Resize
(多次触发) →ResizeEnd
2. 自定义事件与委托
除了内置事件,可以创建自定义事件实现业务逻辑:
csharp
public class CustomForm : Form
{
// 1. 定义委托和事件
public delegate void DataProcessedEventHandler(object sender, string result);
public event DataProcessedEventHandler DataProcessed;
// 2. 触发事件的方法
protected virtual void OnDataProcessed(string result)
{
DataProcessed?.Invoke(this, result);
}
// 3. 使用示例
private void ProcessData()
{
// 业务逻辑...
OnDataProcessed("处理完成!");
}
}
// 订阅自定义事件
CustomFo