The type of the VB control size adaptive function does not meet the requirements!

WBOY
Release: 2024-01-14 13:54:17
forward
1262 people have browsed it

The type of the VB control size adaptive function does not meet the requirements!

VB control adaptive size function type does not match!

Add a module

Option Explicit

Dim FormOldWidth As Long 'The old width value of the form

Dim FormOldHeight As Long 'The old height value of the form

Public Sub ResizeInit(FormName As Form)

Dim pCtl As Control

'Set the old height and width of the form

FormOldWidth = FormName.ScaleWidth

FormOldHeight = FormName.ScaleHeight

On Error Resume Next

For Each pCtl In FormName

'Set the Tag value of the control in the form (set according to the position and size of the space)

'Returns or sets an expression that stores additional data needed by the program.

'Unlike other properties, Visual Basic does not use the value of the Tag property;

'Use this attribute to identify the object.

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

'Save the width and height scaling ratio of the form

ScaleX = FormName.ScaleWidth / FormOldWidth

ScaleY = FormName.ScaleHeight / FormOldHeight

On Error Resume Next

'Change the controls in the form

For Each pCtl In FormName

staPos = 1

For i = 0 To 4 'Position and size

'Get the original position and size of the control

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

'Change the size based on the original position of the control and the form

'Proportional repositioning and resizing of controls

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

Next i

Next pCtl

On Error GoTo 0

End Sub

Add code in Form

Private Sub Form_Load()

Call ResizeInit(Me)

End Sub

'When the size of the form changes, change the size according to the proportion of the form

'Reposition and change the size of each control in the form.

Private Sub Form_Resize()

Call ResizeForm(Me)

End Sub

Then put a few controls in the form and try changing the size of the form

VB textbox control automatically adjusts as the form changes

Control adaptive form:

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

The above is the detailed content of The type of the VB control size adaptive function does not meet the requirements!. For more information, please follow other related articles on the PHP Chinese website!

source:docexcel.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!