VB控制項隨窗體大小改變而改變 控制項自適應窗體大小

2021-06-16 06:48:14 字數 1735 閱讀 5895

大家在設計程式的是、經常碰到的情況是、設計時介面很wonderful、實際執行時也不錯 、可是一旦當使用者改變的窗體大小、一下子就不和諧了、那麼現在就給一段**、讓窗體內的控制項隨窗體縮放的百分比進行縮放、資料取自網路、非原創、只是略加整理好了、所以就不說什麼了、copy到from裡即可、、

option explicit

private formoldwidth as long

'儲存窗體的原始寬度

private formoldheight as long

'儲存窗體的原始高度

public sub resizeinit(formname as form)

dim obj as control

formoldwidth = formname.scalewidth

formoldheight = formname.scaleheight

on error resume next

for each obj in formname

obj.tag = obj.left & " " & obj.top & " " & obj.width & " " & obj.height & " "

next obj

on error goto 0

end sub

public sub resizeform(formname as form)

dim pos(4) as double

dim i 

as long, temppos as long, startpos as long

dim obj 

as control

dim scalex as double, scaley as double

scalex = formname.scalewidth / formoldwidth

scaley = formname.scaleheight / formoldheight

on error resume next

for each obj in formname

startpos = 1

for i = 0 to 4

temppos = instr(startpos, obj.tag, " ", vbtextcompare)

if temppos > 0 then

pos(i) = mid(obj.tag, startpos, temppos - startpos)

startpos = temppos + 1

else

pos(i) = 0

end if

obj.move pos(0) * scalex, pos(1) * scaley, pos(2) * scalex, pos(3) * scaley

next i

next obj

on error goto 0

end sub

private sub form_resize()

call resizeform(me) '確保窗體改變時控制項隨之改變

end sub

private sub form_load()

call resizeinit(me) '在程式裝入時加入

'以下四句是執行使窗體最大化

me.top = 0

me.left = 0

me.width = screen.width

me.height = screen.height

end sub

wpf 控制項大小隨窗體大小改變而改變

wpf可以直接通過設定圖形類控制項的水平和垂直alighment為stretch實現 用乙個viewbox裝上所有的window內容然後當window縮放時就可以一起放大縮小了 viewbox的顯示機制是,先在記憶體中把按照邏輯大小把子控制項顯示出來,然後等比例的縮放顯示到viewbox的客戶區 例...

wpf 控制項大小隨窗體大小改變而改變

wpf可以直接通過設定圖形類控制項的水平和垂直alighment為stretch實現 用乙個viewbox裝上所有的window內容然後當window縮放時就可以一起放大縮小了 viewbox的顯示機制是,先在記憶體中把按照邏輯大小把子控制項顯示出來,然後等比例的縮放顯示到viewbox的客戶區 例...

窗體控制項隨窗體大小改變 包括字型大小

是一篇vb編寫的,我只是把它翻譯成c 的.其實anchor和dock屬性也可以實現,但好象只對容器效果理想,而且字型大小也沒有變化.最近論壇上有好多這樣的貼子,具體實現 如下 private void settag control cons private void setcontrols floa...