1
我有一個WinForm窗體,它具有受約束的MaxSize。如果我按下最大化按鈕,此窗口會彈出到位置0,0(左上角),並顯示正確的MaxSize。有沒有辦法阻止表單移動?防止MaxSized C#WinForm在最大化時移動
我可以在窗體被移動後(通過OS)設置一個新的位置,但用戶可以看到窗體在屏幕上彈出,這不是很整齊。 (我改變了FormName在這裏發佈代碼)。 SuspendLayout在這裏沒有幫助,我不一定要禁用最大化按鈕。
void frmWinForm_SizeChanged(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Maximized)
{
var x = ... // some calculated or original x position
var y = ... // some calculated or original y position
WindowState = FormWindowState.Normal;
SetBounds(x, y, MaxSize.X, MaxSize.Y);
}
}
這工作得很好,謝謝你這個快速的回答。 –
無法正常工作,窗口無法恢復。相反,攔截WM_GETMINMAXINFO,更改ptMaxPosition值。 –
@HansPassant感謝提示,我補充說... – Norman