Acceder au propriétés d'un bouton d'une autre form

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 19 avril 2007 à 11:03
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 - 19 avril 2007 à 14:17
Bonjour,

J'ai une application avec 2 forms, qui sont donc dans un même namespace.
Dans la première form1, il y a une liste déroulante.
Dans la deuxième form2, il y a un bouton qui est désactivé si il n'y a rien dans la liste de la form1.

Si l'utilisateur ajoute un élément dans la liste de la form, il faut que j'accède aux propriétés du bouton de la form2 pour l'activer.

Mon problème, c'est que quand j'essaie d'y accéder en passant pas le namespace ( namespace.form2.?? ), je n'ai que les classes de la forme qui apparaissent et pas les objets...

j'aimerai avoir "namespace.form2.bouton.enable=true;", est-ce possible et comment ???

merci

Hervé

6 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
19 avril 2007 à 11:07
Salut,

En fait c'est plutot instanceDeTaForm2.TonBouton.Enabled = true;
Cela implique que TonBouton soit public.

Mx
MVP C# 
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
19 avril 2007 à 11:21
oui, mais elle est public, mais ça ne fonctionne qu'en mettant static devant. Il n'y a pas myen de faire sans static ???
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 avril 2007 à 11:25
Salut,
Une autres solution c'est de passer des paramètres: tu peux jeter un oeil ici

<hr />
-Blog-
0
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
19 avril 2007 à 11:45
>> oui, mais elle est public, mais ça ne fonctionne qu'en mettant static
devant. Il n'y a pas myen de faire sans static ???

Il faut que tu déclare ta form dans ta classe et non dans la methode qui l'ouvre.

ex :
public MaForm
{
    protected MaForm2 form2;

    void openForm()
    {
        form2 = new MaForm2();
        ....
    }
}
0

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

Posez votre question
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
19 avril 2007 à 12:47
Donc, je déclare MaForm2 dans le fichier MaForm1.cs de MaForm1. Et je fais quoi du code qu'il a généré automatiquement dans MaForm2.cs quand j'ai créé MaForm2 en graphique ??? Parce que je les ai créées séparément pour le moment. Donc je vois pas trop les modifs a faire pour lier les les deux.
Désolé, mais je  ne peux pas tester tout de suite, et il me vient cette question là en y pensant.

merci
0
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
19 avril 2007 à 14:17
C'est un problème de portée.

actuellement ton code doit ressemble a peut près a ceci
public Form1
{
    public Form1()
    {
          InitializeComponent();
    }

    protected void button_click(object sender,enentArgs e)
    {
           Form2 f = new Form2();
           f.show();
    }

}

et la pour acceder a ton bouton il te faudrais plutot quelque chose dans le style
public Form1

{

    public Form1()

    {

          InitializeComponent();

    }

    Form2 f;


    protected void button_click(object sender,enentArgs e)

    {

           f = new Form2();

           f.show();

    }


}

T'as plus qu'a declarer ton bouton public ou bien créer une propriétée qui t'en donne l'acces.
0
Rejoignez-nous