我将表单的MaximumSize设置为一个值,这样当用户按下最大化按钮时,表单仍然显示为窗口,而不是全屏。这有效,但有两个副作用,我不想要:
如何避免这些副作用?
编辑:有没有办法在按下最大化按钮时水平居中表格?
答案 0 :(得分:0)
您可以覆盖WndProc
以捕获MaximumSize事件
像这样
private const int SC_MAXIMIZE = 0xF030;
private const int WM_SYSCOMMAND = 0x0112;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam == new IntPtr(SC_MAXIMIZE))
{
this.Size = this.MaximumSize;
return;
}
}
base.WndProc(ref m);
}
这可以解决你的问题, 但是,不建议违背操作系统的设计。这将导致对接问题,这违背了用户的期望