Maison  >  Article  >  tutoriels informatiques  >  Le type de fonction adaptative de taille de contrôle VB ne répond pas aux exigences !

Le type de fonction adaptative de taille de contrôle VB ne répond pas aux exigences !

WBOY
WBOYavant
2024-01-14 13:54:171291parcourir

Le type de fonction adaptative de taille de contrôle VB ne répond pas aux exigences !

Incompatibilité de type de fonction de taille adaptative de contrôle VB !

Ajouter un module

Option explicite

Dim FormOldWidth As Long 'L'ancienne valeur de largeur du formulaire

Dim FormOldHeight As Long 'L'ancienne valeur de hauteur du formulaire

Public Sub ResizeInit (FormName As Form)

Dim pCtl comme contrôle

'Définissez l'ancienne hauteur et largeur du formulaire

FormOldWidth = FormName.ScaleWidth

FormOldHeight = FormName.ScaleHeight

En cas d'erreur, reprendre ensuite

Pour chaque pCtl dans FormName

'Définissez la valeur Tag du contrôle dans le formulaire (définie en fonction de la position et de la taille de l'espace)

'Renvoie ou définit une expression qui stocke les données supplémentaires nécessaires au programme.

'Contrairement à d'autres propriétés, Visual Basic n'utilise pas la valeur de la propriété Tag

;

'Utilisez cet attribut pour identifier des objets.

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

Prochain pCtl

En cas d'erreur, allez à 0

Fin du sous-marin

Public Sub ResizeForm (FormName As Form)

Dim Pos (4) en double

Dim i aussi longtemps, tmpPos aussi longtemps, staPos aussi longtemps

Dim pCtl comme contrôle

Dim ScaleX en double, ScaleY en double

'Enregistrez le rapport de mise à l'échelle en largeur et en hauteur du formulaire

ScaleX = FormName.ScaleWidth / FormOldWidth

ScaleY = FormName.ScaleHeight / FormOldHeight

En cas d'erreur, reprendre ensuite

'Modifiez les contrôles dans le formulaire

Pour chaque pCtl dans FormName

staPos = 1

Pour i = 0 à 4 'Position et taille

'Obtenir la position et la taille d'origine du contrôle

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

Si tmpPos > 0 Alors

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

staPos = tmpPos + 1

Autre

Pos(i) = 0

Fin si

'Modifiez la taille en fonction de la position et de la forme d'origine du contrôle

'Repositionner et redimensionner les contrôles proportionnellement

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

Suivant je

Prochain pCtl

En cas d'erreur, allez à 0

Fin du sous-marin

Ajouter du code dans le formulaire

Sous-Formulaire Privé_Load()

Appelez ResizeInit (Me)

Fin du sous-marin

'Lorsque la taille du formulaire change, changez la taille en fonction de la proportion du formulaire

'Repositionnez et modifiez la taille de chaque contrôle du formulaire.

Sous-Formulaire Privé_Resize()

Appelez ResizeForm(Me)

Fin du sous-marin

Placez ensuite quelques contrôles dans le formulaire et essayez de modifier la taille du formulaire

Le contrôle de la zone de texte VB s'ajuste automatiquement à mesure que le formulaire change

Formulaire adaptatif de contrôle :

Dim anciennehauteur&, anciennelargeur&

Sous-Formulaire Privé_Load()

oldheight = Me.Height : oldwidth = Me.Width

Fin du sous-marin

Sous-Formulaire Privé_Resize()

Dim cnt comme contrôle

Pour chaque cnt dans les contrôles

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

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

Suivant

oldheight = Me.Height : oldwidth = Me.Width

Fin du sous-marin

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer