Heim >Computer-Tutorials >Computerwissen >Der Typ der VB-Control-Size-Adaptive-Funktion entspricht nicht den Anforderungen!
Ein Modul hinzufügen
Option explizit
Dim FormOldWidth As Long 'Der alte Breitenwert des Formulars
Dim FormOldHeight As Long 'Der alte Höhenwert des Formulars
Public Sub ResizeInit(FormName As Form)
PCtl als Steuerung dimmen
'Legen Sie die alte Höhe und Breite des Formulars fest
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
Bei Fehler Fortsetzung fortsetzen
Für jedes pCtl in FormName
'Legen Sie den Tag-Wert des Steuerelements im Formular fest (entsprechend der Position und Größe des Leerzeichens)
'Gibt einen Ausdruck zurück oder legt ihn fest, der zusätzliche vom Programm benötigte Daten speichert.
'Im Gegensatz zu anderen Eigenschaften verwendet Visual Basic nicht den Wert der Tag-Eigenschaft
'Verwenden Sie dieses Attribut, um Objekte zu identifizieren.
pCtl.Tag = pCtl.Left & " ” & pCtl.Top & " " & pCtl.Width & " ” & pCtl.Height & " "
Nächstes pCtl
Bei Fehler Gehe zu 0
End Sub
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, tmpPos As Long, staPos As Long
PCtl als Steuerung dimmen
ScaleX als Double dimmen, ScaleY als Double dimmen
'Speichern Sie das Breiten- und Höhenskalierungsverhältnis des Formulars
ScaleX = FormName.ScaleWidth / FormOldWidth
ScaleY = FormName.ScaleHeight / FormOldHeight
Bei Fehler Fortsetzung fortsetzen
'Ändern Sie die Steuerelemente im Formular
Für jedes pCtl in FormName
staPos = 1
Für i = 0 bis 4 'Position und Größe
'Ermitteln Sie die ursprüngliche Position und Größe des Steuerelements
tmpPos = InStr(staPos, pCtl.Tag, "", vbTextCompare)
Wenn tmpPos > 0 Dann
Pos(i) = Mid(pCtl.Tag, staPos, tmpPos - staPos)
staPos = tmpPos + 1
Sonst
Pos(i) = 0
Ende wenn
'Ändern Sie die Größe entsprechend der ursprünglichen Position und Form des Steuerelements
'Steuerelemente proportional neu positionieren und in der Größe ändern
pCtl.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Als nächstes
Nächstes pCtl
Bei Fehler Gehe zu 0
End Sub
Code im Formular hinzufügen
Private Sub Form_Load()
Rufen Sie ResizeInit(Me) an
End Sub
'Wenn sich die Größe des Formulars ändert, ändern Sie die Größe entsprechend den Proportionen des Formulars
'Positionieren Sie die einzelnen Steuerelemente im Formular neu und ändern Sie ihre Größe.
Private Sub Form_Resize()
Rufen Sie ResizeForm(Me) an
End Sub
Dann fügen Sie ein paar Steuerelemente in das Formular ein und versuchen Sie, die Größe des Formulars zu ändern
Adaptive Form steuern:
Dim oldheight&, oldwidth&
Private Sub Form_Load()
oldheight = Me.Height: oldwidth = Me.Width
End Sub
Private Sub Form_Resize()
Dim cnt As Control
Für jedes Cnt in Kontrollen
cnt.Width = cnt.Width * Me.Width / oldwidth
cnt.Height = cnt.Height * Me.Height / oldheight
Weiter
oldheight = Me.Height: oldwidth = Me.Width
End Sub
Das obige ist der detaillierte Inhalt vonDer Typ der VB-Control-Size-Adaptive-Funktion entspricht nicht den Anforderungen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!