Resize objects

cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004 - 20 mars 2003 à 18:15
jbonavia Messages postés 2 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 30 novembre 2005 - 25 juin 2004 à 21:02
Bonjour,

Comment redimensionner les éléments d'une feuille quand la feuille est redimensionnée ? (en VB)

J'ai trouvé un exemple mais avec 1 seul objet, ce n'est pas terrible.

Si qqn a qqc à me proposer sur ce sujet - idées, bout de code...-, ça m'aiderait bcp

Merci.

~~~ NuNu ~~~

4 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
20 mars 2003 à 19:04
Ben c à toi de le faire dans le ..

Private Sub Form_Resize()
...
End Sub

<center>http://www.fredlynx.com
</center>
0
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
21 mars 2003 à 09:17
Ok, d'accord. Mais comment ?

Il se peut que ça soit tout bête et que je cherche midi à 14 heures, mais je n'ai pas d'idée.

As-tu un exemple avec 1 form et 2 ctrls (1 textbox + 1 label) ?

Private Sub Form_Resize()
'... C'EST QUOI QUI VA LA ?
End Sub

Merci.

~~~ NuNu ~~~
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
21 mars 2003 à 09:27
0
jbonavia Messages postés 2 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 30 novembre 2005
25 juin 2004 à 21:02
J'ai fait ce code pour une feuille (qui n'avait que 3 contrôles d'importance, mais ça montre l'idée) -
L'important est de savoir avec quel controle on a affaire...les différents contrôles doivent être traités selon le cas. Les deux "SGGRID" par ex. sont creés par un logiciel shareware: je veux faire allonger les deux vers le bas, mais seul le SGGrid2 doit changer de largeur. Le command button je veux seulement déplacer á droit, &c.

Dans les Declarations de la feuille:

m_lastWidth = Me.Width
m_lastHeight = Me.Height
m_StartWidth = Me.Width

Dans le Resize:

Private Sub Form_Resize()
Dim i As Integer
Dim c As Control

Dim WidthFactor As Single
Dim HeightFactor As Single
Dim widthdiff As Long
Dim newWidth As Long

If Me.Width <> m_lastWidth Or Me.Height <> m_lastHeight Then
WidthFactor = Me.Width / m_lastWidth
HeightFactor = Me.Height / m_lastHeight
widthdiff = Me.Width - m_StartWidth

For i = 0 To Me.Controls.Count - 1
Set c = Me.Controls(i)
If TypeOf c Is CommandButton Then
c.Left = c.Left * WidthFactor
End If
If TypeOf c Is SGGrid Then
c.Height = c.Height * HeightFactor
If c.Name = "SGGrid2" Then
newWidth = SGGrid2.Width + widthdiff
If newWidth >= SGGrid2.ColWidthMin Then
SGGrid2.Width = newWidth
SGGrid2.Columns(1).Width = newWidth - SGGrid2.Columns(0).Width
End If

End If
End If

Next i
m_lastWidth = Me.Width
m_lastHeight = Me.Height

End If

end sub

vous me pardonnerez des fautes de français, s'ily en a....suis un écossais habitant a Boston. . .
0
Rejoignez-nous