窗體自動調整大小

2022-02-19 10:21:57 字數 1238 閱讀 7972

關於窗體自動調整大小,網上資料一搜一大片,大部分雷同,我使用後發現都有些小毛病就是多托拉幾次後,再拉回原來大小,畫面顯示效果和開始的時候有點不一樣。所以針對網上的**做了些修改,呵呵,不過變數名什麼的沒改。

private objoldwidth as long

private objoldheight as long

兩個全域性變數儲存原始的時候窗體大小

private sub memscaler()

objoldwidth = me.width

objoldheight = me.height

dim objctl as control

for each objctl in me.controls

objctl.tag = objctl.left & "," & objctl.top & "," & objctl.width & "," & objctl.height & "," & objctl.font.size

next

end sub

該函式記錄每個控制項的一些屬性,在form load事件裡呼叫一次就可以了。

在form_resize加入下邊**

private sub form_resize()

dim nposarr() as string

dim sig1 as single

dim sig2 as single

sig1 = me.width / objoldwidth

sig2 = me.height / objoldheight

dim objctl as control

for each objctl in me.controls

nposarr = split(objctl.tag, ",")

with objctl

.left = int(cdbl(nposarr(0)) * sig1)

.top = int(cdbl(nposarr(1)) * sig2)

.width = int(cdbl(nposarr(2)) * sig1)

.height = int(cdbl(nposarr(3)) * sig2)

.font.size = int(cdbl(nposarr(4)) * sig2)

end with

next

end sub

ok,這就可以了。 寫到這裡突然發現上邊轉的是int,會不會出問題呢?估計寬度之類的應該是double吧,姑且這樣吧。

C 窗體設計 自動調整控制項大小

新建乙個c 應用程式,應用程式命名為change 窗體介面設計如下 雙擊窗體新增load 函式,函式中新增一下 private void form1 load object sender,eventargs e this.resize new eventhandler form1 resize 窗體...

C winform 如何禁止調整窗體大小

目錄 使用.net編寫windows程式,對於窗體控制常見專案 屬性 1 讓窗體在啟動時在指定位置出現 2 設定窗體的圖示 3 設定該窗體成為多個子窗體的父窗體 怎樣能使winform窗體的大小固定住,不能調整其大小 窗體formborderstyle屬性設定為 fixedsingle,再把最大化禁...

設定當子窗體的的大小小於主窗體時,自動調整大小

設定當子窗體的的大小小於主窗體時,自動調整大小 soctt 20070827 窗體大小改變事件 this sizechanged new eventhandler fmzmain sizechanged soctt 200070827 使子窗體自動調整 void fmzmain sizechange...