c# - 恢复窗口时是否在 C# 中引发了事件?

标签 c# winforms events forms

在 C#/.NET 中恢复窗口时是否会引发任何事件?

我注意到当窗口被激活时会引发一个事件,但我找不到正在恢复的窗口的相应事件,例如从最大化或最小化状态。

最佳答案

如果您不喜欢使用窗体的 WindowState 属性并且不想保留一个指示窗体先前状态的标志,您可以在稍低的级别上实现相同的结果.

您需要覆盖窗体的窗口过程 (WndProc) 并监听 WM_SYSCOMMAND message指示 SC_RESTORE。例如:

protected override void WndProc(ref Message m)
{
    const int WM_SYSCOMMAND = 0x0112;
    const int SC_RESTORE = 0xF120;

    if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_RESTORE)
    {
        // Do whatever processing you need here, or raise an event
        // ...
        MessageBox.Show("Window was restored");
    }

    base.WndProc(ref m);
}

关于c# - 恢复窗口时是否在 C# 中引发了事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594762/

相关文章:

c# - 如何在没有对象的情况下访问 Page 类的属性(实例)

c# - 制作转换器时遇到麻烦

c# - .NET 中的 Finalize 和 Dispose 方法有什么意义? (回答前详见)

javascript - jQuery `on` 方法未绑定(bind)事件

java - 如何最小化(图标化)FXML应用程序?

c# - 减少 Entity Framework 库对 app.config 的依赖

winforms - 如何获取组件的名称?

c# - 无法从列表中的 DataGridView 中加载数据

c# - 点击后退按钮时如何捕捉事件?

winforms - C#的winforms控件的屏幕截图