在我的应用程序中,通过拖动角来调整窗体大小时会触发ResizeEnd
事件,但是当我单击最大化按钮时不会触发它。
Resize
事件在我的方案中不起作用,因此我需要使用ResizeEnd
事件。
为什么在通过最大化按钮调整表单大小时不会触发此事件?或者任何人都可以提出替代方案吗?
答案 0 :(得分:6)
当用户完成表单大小调整时,会引发ResizeEnd
事件,通常是拖动其中一个边框或位于表单右下角的大小调整夹,然后释放它。当用户移动表单时也会引发它。
如果出于任何原因需要最大化窗口导致提升ResizeEnd
事件,您可以通过这种方式举起活动:
const int WM_SYSCOMMAND = 0x0112;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam == (IntPtr)SC_MAXIMIZE)
{
//the window has been maximized
this.OnResizeEnd(EventArgs.Empty);
}
}
}
请注意