Winform控制項隨視窗等比例縮放

2021-10-12 09:30:57 字數 1701 閱讀 4150

在建立winform視窗時,常常控制項不能隨視窗正確比例縮放。

執行窗體如下:

最大化後窗體:

縮小後窗體:

實現方法如下

在form1視窗下新增乙個panel工具,在父容器中停靠;

然後在panel容器中放置我們需要的工具;

新建乙個 nform 窗體類,繼承預設窗體類 form ,而原來的 form1 :form 窗體類繼承的預設窗體類修改為 form1 :nform 自定義新建的窗體類。

新建窗體類**如下:

using system;

using system.collections.generic;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

foreach

(control item in crlcontainer.controls)

}private

void

controlschangeinit

(control crlcontainer)

private

void

controlschange

(control crlcontainer)

double itemwidth = pos[2]

* scalex;

double itemheight = pos[3]

* scaley;

item.left = convert.

toint32

(pos[0]

* scalex - itemwidth /2)

; item.top = convert.

toint32

(pos[1]

* scaley - itemheight /2)

; item.width = convert.

toint32

(itemwidth)

; item.height = convert.

toint32

(itemheight)

;try

catch}}

}#endregion

protected

override

void

onsizechanged

(eventargs e)}}

}

在form1.cs檔案中修改:

public

partial

class

form1

:nform

}

控制項大小隨視窗等比例變化

第一步 oninitdialog裡儲存對話方塊及其所有子窗體的rect區域 在主視窗類中新增成員變數 clistm listrect成員變數 crect rect getwindowrect rect m listrect.addtail rect 對話方塊的區域 cwnd pwnd getwind...

C Winform 控制項大小隨窗體大小等比例縮放

在from1.cs中輸入如下 public form1 其中settag this 為控制項等比例縮放的方法 region 控制項大小隨窗體大小等比例縮放 private float x 定義當前窗體的寬度 private float y 定義當前窗體的高度 private void settag ...

C 控制項大小隨窗體大小等比例變化

相信很多博友在開發初次接觸學習c winform時,當窗體大小變化時,窗體內的控制項並沒有隨著窗體的變化而變化,最近因為乙個專案工程的原因,也需要解決這個問題。通過查閱和學習,這個問題得到了解決,或許不是很好的處理方式,但是也值得借鑑。下面我將建立乙個demo來大概解釋下這個方法的實現 注 我使用的...