Redimensionnent des UserControls

stef666667 Messages postés 4 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 juillet 2008 - 17 juil. 2008 à 11:19
stef666667 Messages postés 4 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 juillet 2008 - 21 juil. 2008 à 11:42
Bonjour,

Je vous explique mon problème :
Je dois coder une fonction pour redimensionner automatiquement les fenêtres des utilisateurs ( seulement maximiser ou retour à la normale ).
Il me faut donc passer dans tous les contrôles de la fenêtre pour redimensionner chacun de ces contrôles. Le problème est que pour certaines fenêtres, j'ai des UserControls et je n'arrive pas à passer dans ces UserControls ( il faut que je passe dedans car ils contiennent eux-meme des controles ).

Voici le code que j'ai pour l'instant mais qui ne fonctionne pas pour les UserControls :



Public Sub RedimForm(Fenetre As Form, lng As Long, lar As Long)
Dim obj As Control
If (Fenetre.WindowState = 1) Then Exit Sub

For Each obj In Fenetre.Controls
If TypeOf obj Is ComboBox Then
'Les comboboxes ont leur propriété Height en lecture seule
obj.Move obj.Left * Fenetre.Width / lng, obj.Top * Fenetre.Height / lar, obj.Width * Fenetre.Width / lng
Else
If TypeOf obj Is UserControl Then
'TO DO : Redim des Controls dans le UserControl
'Le programme ne rentre pas dans cette boucle meme si c'est un UserControl
Else
If ExistProperty(obj, "Width") And ExistProperty(obj, "Height") Then
obj.Move obj.Left * Fenetre.Width / lng, obj.Top * Fenetre.Height / lar, _
obj.Width * Fenetre.Width / lng, obj.Height * Fenetre.Height / lar
End If
End If
End If
Next
End Sub



Quand je mets le type du UserControl, par contre ca rentre dans la boucle.
Y a-t-il un moyen d'obtenir la liste des Usercontrols chargés par l'appli, ou alors peut-on utiliser le type generique pou tester si le controle est bien un User COntrol ?
A voir également:

6 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
17 juil. 2008 à 11:27
pourquoi ne pas faire ton design une fois pour toutes et empecher le resize de la form?

il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres
0
stef666667 Messages postés 4 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 juillet 2008
17 juil. 2008 à 11:42
Les utilisateurs travaillent dans des résolutions différentes, et comme c'est une demande du client, j'ai pas trop de marge de manœuvre ( actuellement le resize est justement bloqué )
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 juil. 2008 à 14:16
remplace UserControl par le nom de la classe...
pas
If TypeOf obj Is UserControl Then
mais par exemple
If TypeOf obj Is BoutonPerso Then
ou
If TypeOf obj Is OverLabel Then
...


et pense à utiliser

If Then
ElseIf Then
ElseIF Then
End If

plutot que n niveaux de If
0
stef666667 Messages postés 4 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 juillet 2008
17 juil. 2008 à 17:31
Effectivement ça marche, mais mon soucis est de récupérer la liste des classes : j'ai environ une 50aine de usercontrols différents, et j'aimerais que cette fonction soit commune pour tous les usercontrols.
Est-ce qu'il y a un moyen de charger cette liste ( une collection ) ? Cela eviterait d'avoir une liste de fonction qui font toutes la même chose ( et surtout que je peux avoir des usercontrols imbriqués, ce qui augmente encore la complexité )

Petite question pour les elseif : ta suggestion augmente-t-elle l'efficacité du code ou est-ce juste une question de lisibilité ? ( j'avoue que je ne le sais pas du tout)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 juil. 2008 à 18:53
ca fonctionne pas, le code de ton 'Else', pour tes usercontrols ?
0
stef666667 Messages postés 4 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 juillet 2008
21 juil. 2008 à 11:42
Le problème, c'est qu'il peut y avoir des UserControls à l'intérieur d'autres UserControls, et que je dois donc traiter les différemment pour parcourir tous les controles
0
Rejoignez-nous