stef666667
Messages postés4Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 juillet 2008
-
17 juil. 2008 à 11:19
stef666667
Messages postés4Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 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 ?
stef666667
Messages postés4Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 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é )
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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
...
stef666667
Messages postés4Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
stef666667
Messages postés4Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 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