簡體   English   中英

打開時如何防止Mdi子窗體大小發生變化

[英]How to prevent Mdi child form size from changing when opening

我正在嘗試調整 Mdi 父窗體的大小以適應 Mdi 子窗體的大小。 因此,當打開子窗體時,父窗體會根據子窗體的大小調整大小,而子窗體將保持與在設計器中創建的大小相同。

這看起來很簡單,我幾乎已經通過以下方式實現了它:

frm_newWindow newWindow = new frm_newWindow();
this.ClientSize = newWindow.Size;
newWindow.MdiParent = this;
newWindow.Dock = DockStyle.Fill;
this.MinimumSize = this.Size;
newWindow.Show();

起初,我認為它工作得很好——父窗體變大,子窗體填滿了客戶區——我打算繼續前進。 然而,我仔細看了看,發現尺碼不對。 父窗體確實會調整大小,但由於某種原因,窗體的大小也會發生變化。 因此,窗體上的控件大小不正確且位置不正確。 他們相當接近,但不正確。 例如,在設計器中,“自動定位”在列表框下方的文本框(在將文本框拖到適當位置時在文本框和列表框之間顯示一條藍線)最終在運行時在窗體的下方。

我也試過:

this.ClientSize = newWindow.ClientSize

因為子窗體沒有邊框,我想也許不存在的邊框仍然以某種方式計算子窗體的大小。 不過,這條線的行為是一樣的。

目前,除了 Visual Studio 創建的 InitializeComponent() 行之外,子窗體上沒有任何代碼。 窗體的邊框樣式設置為“無”。 除了它的大小和文本,所有其他屬性都保持默認。

打開時如何防止 Mdi 子窗體改變大小?

在子窗體中,將AutoScaleMode屬性設置為None 這將解決它。

在將其附加到父級之前嘗試設置子級將修復奇怪的行為,例如自動調整大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM