Heim >Computer-Tutorials >Computerwissen >Der Typ der VB-Control-Size-Adaptive-Funktion entspricht nicht den Anforderungen!

Der Typ der VB-Control-Size-Adaptive-Funktion entspricht nicht den Anforderungen!

WBOY
WBOYnach vorne
2024-01-14 13:54:171298Durchsuche

Der Typ der VB-Control-Size-Adaptive-Funktion entspricht nicht den Anforderungen!

Nichtübereinstimmung der adaptiven Größenfunktionstypen der VB-Steuerung!

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

Die VB-Textfeldsteuerung passt sich automatisch an, wenn sich das Formular ändert

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen