簡體   English   中英

調整Windows窗體的大小以適合任何屏幕尺寸

[英]Resizing a windows form for any screen size

我只是設計了一個Windows窗體應用程序,但是當它在我的朋友們較小的筆記本電腦上運行時; 表單顯得太大,或者我應該說必須從左向右或從上到下滾動才能訪問各種文本框,按鈕等。我正在查看此SO答案 ,其中顯示了以下代碼:

this.WindowState = FormWindowState.Maximized;

我假設這段代碼駐留在特定的表單構造函數中? 這段代碼能解決我所有的問題嗎? 除非我開始弄亂自己的屏幕分辨率,否則我目前沒有較小的筆記本電腦可以進行測試。

當然,在該問題的公認答案中發布的代碼需要放入表單構造函數中(InitializeComponents),並且具有最大化的形式當然可以消除很多有關大小調整的問題。 無論如何,該物業:

Screen.PrimaryScreen.WorkingArea

對於相對於當前屏幕尺寸的表單大小和位置非常有用。 例如:

this.Width = Screen.PrimaryScreen.WorkingArea.Width / 2;
this.Height = Screen.PrimaryScreen.WorkingArea.Height / 2;
this.Top = (Screen.PrimaryScreen.WorkingArea.Top + Screen.PrimaryScreen.WorkingArea.Height) / 4;
this.Left = (Screen.PrimaryScreen.WorkingArea.Left + Screen.PrimaryScreen.WorkingArea.Width) / 4;

在將WindowState設置為“最大化”之前,您需要完全調整窗體的大小。

盡可能在VS設計器中縮小表單,為每個組件設置Dock,Anchor和Min / Max大小,然后嘗試在設計器中調整大小。 重復直到調整大小。

如果上述迭代還不夠,您可能需要在Panel中將控件分組在一起,以控​​制控件如何調整大小。

我個人使用TableLayoutPanel並通過定義行和列並設置它們的高度和寬度來設計表單,其中一些具有AutoSize一些具有Percent而某些具有Absolute size類型,具體取決於我希望的形狀。 然后,將控件(文本框,標簽,組合框)放在tablelayoutpanel的單元格內,並將其dock設置為Fill 而已。

我不確定這是否是完成這項工作的正確方法,但是兩年來我一直在努力,沒有失敗。 希望對您也有幫助。

暫無
暫無

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

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