首頁  >  文章  >  電腦教學  >  VB控件大小自適應函數的類型不符合要求!

VB控件大小自適應函數的類型不符合要求!

WBOY
WBOY轉載
2024-01-14 13:54:171289瀏覽

VB控件大小自適應函數的類型不符合要求!

VB用控制項自適應大小函數類型不符!

新增一個模組

Option Explicit

Dim FormOldWidth As Long '窗體舊的寬度值

Dim FormOldHeight As Long '窗體舊的高度值

Public Sub ResizeInit(FormName As Form)

Dim pCtl As Control

'設定窗體舊的高度與寬度

FormOldWidth = FormName.ScaleWidth

FormOldHeight = FormName.ScaleHeight

On Error Resume Next

For Each pCtl In FormName

#'設定窗體中控制項的Tag值(根據空間的位置和大小來設定)

'傳回或設定一個表達式,它儲存程式所需的額外資料。

'與其它屬性不同,Visual Basic 不使用 Tag 屬性的值;

'可用該屬性識別物件。

pCtl.Tag = pCtl.Left & " " & pCtl.Top & " " & pCtl.Width & " " & pCtl.Height & " "

#Next pCtl

On Error GoTo 0

End Sub

Public Sub ResizeForm(FormName As Form)

Dim Pos(4) As Double

#Dim i As Long, tmpPos As Long, staPos As Long

#Dim pCtl As Control

Dim ScaleX As Double, ScaleY As Double

'保存窗體的寬度與高度縮放比例

ScaleX = FormName.ScaleWidth / FormOldWidth

ScaleY = FormName.ScaleHeight / FormOldHeight

On Error Resume Next

'變化窗體內的各控制項

For Each pCtl In FormName

#staPos = 1

For i = 0 To 4 '位置與大小

'取得控制項的原始位置和大小

tmpPos = InStr(staPos, pCtl.Tag, " ", vbTextCompare)

If tmpPos > 0 Then

Pos(i) = Mid(pCtl.Tag, staPos, tmpPos - staPos)

staPos = tmpPos 1

Else

Pos(i) = 0

End If

'根據控制項的原始位置及視窗改變大小的

'比例對控制項重新定位與改變大小

pCtl.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY

Next i

Next pCtl

On Error GoTo 0

End Sub

在Form中加入程式碼

Private Sub Form_Load()

Call ResizeInit(Me)

#End Sub

'窗體大小改變時,根據窗體改變大小的比例

'對窗體中各控制項重新定位並改變大小。

Private Sub Form_Resize()

Call ResizeForm(Me)

End Sub

然後在窗體裡放幾個控制項然後改變窗體大小試試

VB textbox控制項會隨窗體變化自動調整

控制項自適應窗體:

Dim oldheight&, oldwidth&

Private Sub Form_Load()

oldheight = Me.Height: oldwidth = Me.Width

End Sub

Private Sub Form_Resize()

Dim cnt As Control

For Each cnt In Controls

cnt.Width = cnt.Width * Me.Width / oldwidth

cnt.Height = cnt.Height * Me.Height / oldheight

Next

oldheight = Me.Height: oldwidth = Me.Width

###End Sub###

以上是VB控件大小自適應函數的類型不符合要求!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除