在 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/