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

WBOY
Libérer: 2024-01-14 13:54:17
avant
1262 Les gens l'ont consulté

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!

source:docexcel.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!