Instances User Control Winform

doudouastam Messages postés 20 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 septembre 2009 - 10 sept. 2009 à 18:53
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 12 sept. 2009 à 04:43
Bonjour à tous,

Je suis en train de créer un Winform.
A l'intérieur du formulaire ("form" de base), navigation par onglet.
Je travaille sur un seul onglet actuellement.

Au vu du nombre de bouton/labels/textbox/liste disposés sur l'onglet ( scrolling vertical à l'intérieur du 'tab' de l'onglet), visual studio (2005) commençait à ramer ce qui était embêtant.

J'ai donc créé plusieurs user control pour dessiner chacune des zones composants l'onglet de façons plus aisées, puis ajouté ces user control sur l'onglet.

Or je ne sais pas comment faire communiquer 2 user control.

Exemple a priori simple :

J'ai un user control dans lequel il y a un combobox (3 valeurs 'afficher panel 1' 'afficher panel 2' ou 'ne pas afficher'), un autre user control dans lequel il y a un les 2 panels à afficher.

Si je sélectionne dans le combobox la valeur 'afficher panel 1' le panel 1 doit s'afficher(hem logique).

Je ne sais pas comment m'y prendre pour faire communiquer un élément combobox d'un user control instancié et un élément panel d'un autre user control instancié. En fait à l'intérieur de la fonction qui intercepte le changement de la valeur dans la combobox n'a aucun moyen d'accéder au control user (instancié) et encore moins au panel de ce control user.


Plusieurs questions :

- ai-je bien fait de créée des user control ? y a t il une meilleur solution pour éviter que VS 'rame' sur des winforms avec beaucoup d'infos ?

- même si j'ai pas eu la bonne solution concernant la création de user control, est-ce possible de les faire communiquer ?

Merci d'avoir lu et n"hésitez pas à m'orienter.

3 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 sept. 2009 à 03:55
Salut,

Si ça rame c'est qu'il te manque de la RAM :D

Un moyen simple d'obtenir une référence sur un contrôle contenu dans la forme :

public class MyUserControl : UserControl
{
public Control FindControlByName( string name )
{
return this.Parent.Controls[ name ];
}
}
0
doudouastam Messages postés 20 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 10:17
Merçi d'avoir répondu.

La fonction que tu m'as donnée permet de récupérer (par exemple) "MonFormulaire.MaClasseDeUserControl" lorsque j'appelle FindControlByName( "MaClasseDeUserControlInstanciée" )

Comment atteindre MonFormulaire.MaDeuxièmeClasseDeUserControlInstanciée ?
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
12 sept. 2009 à 04:43
"MaDeuxièmeClasseDeUserControlInstanciée" C'est quoi ? Je ne connais pas l'imbrication des tes contrôles.

A partir de la propriété Controls de la forme tu as accès à tous ses contrôles et chaque contrôles a lui aussi une proriété Controls.
0
Rejoignez-nous