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