Bootstrap

C# Windows Forms 窗体事件的进阶知识点

以下是 C# Windows Forms 窗体事件的进阶知识点,涵盖事件机制、高级用法、性能优化和实际场景技巧:


1. 事件的生命周期与触发顺序

Windows Forms 事件遵循特定触发顺序,理解这些顺序对复杂逻辑至关重要:

窗体启动时
  1. 构造函数 → Load → Activated → Shown
  2. 首次显示时Paint 事件会在 Shown 后触发(当窗体需要绘制时)
窗体关闭时
  1. Closing → FormClosing → FormClosed → Deactivate
调整大小时
  1. 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
;