ce code peut-être porter sous VB6 aussi, il permet de créer un control et de pouvoir le redimentionner automatiquement.
Je m'explique, j'ai créé un calendrier de toute pièce pour une application (désoler, je peux pas dire c'est quoi). Quand j'ajoute mon controle sur une forme, il va se redimentionner automatiquement sur la grandeur que je lui ai donner.
Si je le redimentionne en mode Desing toujours, il va aussi se redimentionner à chaque fois.
oki, ça quand même un peu lourd, puisqu'il fad un bon tableau pour le faire, sauf que ça fonctionne à la perfection.
Source / Exemple :
'on doit déclarer 2 type
Private Structure Position
Public left As Long
Public top As Long
Public height As Long
Public Width As Long
End Structure
Private Structure Item
Public Form As Position
Public element() As Position
End Structure
'puis une variable
Dim formulaire As Item
'**********************************************
'à la toute fin, dans le Private Sub InitializeComponent(), ajouté un appel à un Sub que je vais appeller "initialiser"
'Dans initialiser, on va retrouver ceci, pour connaitre toute les position des object au départ et connaitre le grandeur de la form de départ
ReDim formulaire.element(Me.Controls.Count - 1)
For i = 0 To Me.Controls.Count - 1
formulaire.element(i).height = Me.Controls(i).Height
formulaire.element(i).left = Me.Controls(i).Left
formulaire.element(i).top = Me.Controls(i).Top
formulaire.element(i).Width = Me.Controls(i).Width
Next i
'**********************************************
pour terminer faut Overriter le sub Onresize de la form. Ça va faire une proportion sur la grandeur de la form de départ et sa nouvelle dimention, puis ça va repositionner tout les control par la suite.
Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
Dim i As Integer
Dim x_pourcentage As Double
Dim y_pourcentage As Double
x_pourcentage = formulaire.Form.Width / Me.Width
y_pourcentage = formulaire.Form.height / Me.Height
On Error Resume Next
For i = 0 To Me.Controls.Count - 1
Me.Controls(i).Height = formulaire.element(i).height / y_pourcentage
Me.Controls(i).Top = formulaire.element(i).top / y_pourcentage
Me.Controls(i).Width = formulaire.element(i).Width / x_pourcentage
Me.Controls(i).Left = formulaire.element(i).left / x_pourcentage
Next i
End Sub
Conclusion :
Attention, il ne faut pas avoir de Panel, sinon il faudra modifier un peu le code, puisque les item mis au un Panel ne se trouve pas sur la form, mais sur le panel.
Désoler encore de pas avoir mis de source, mais j'ai pas le droit de la diffuser, saufque c,est pas extrêment compliqué à faire
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.