Contrôle panel

Résolu
drx7 Messages postés 16 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 8 juin 2009 - 1 juin 2009 à 19:42
drx7 Messages postés 16 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 8 juin 2009 - 2 juin 2009 à 19:05
bonsoir

bon j'expose mon idée:

je voudré avec le même bouton au premier clic affiché un panel et au second suprimé le 1er panel et afffciher le deuxieme:

SuprPanel1 est une variable bool:

 if (this.SuprPanel1)
            {
                Controls.Remove(panel1);
                Panel panel2 = new System.Windows.Forms.Panel();
                panel2.Name = "panel2";
                panel2.Size = new System.Drawing.Size(100, 100);
                panel2.Location = new System.Drawing.Point(100, 100);
                panel2.BackColor = System.Drawing.Color.Blue;
                this.Controls.Add(panel2);
                this.SuprPanel1 = false;
                this.Panel1_ON = false;
                this.Panel2_ON = true;
            }
            else
            {
                Controls.Remove(panel2);
                Panel panel1 = new System.Windows.Forms.Panel();
                panel1.Name = "panel1";
                panel1.Size = new System.Drawing.Size(100, 100);
                panel1.Location = new System.Drawing.Point(100, 100);
                panel1.BackColor = System.Drawing.Color.Red;
                this.Controls.Add(panel1);
                this.SuprPanel1 = true;
                this.Panel1_ON = true;
                this.Panel2_ON = false;
            }

voila ce qui ce passe quand j'appuie je vois mon premier carré bleu je réappuie je vois le carré rouge apparaître, cependant le bleu ne disparait pas pk?

impossible is nothing!

2 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
1 juin 2009 à 20:56
Bonsoir,

A vue de nez je dirais que c'est parce que tu utilises à la fois une variable "panel1" en champs membre de la classe et une variable "panel1" locale à la méthode (pareil pour "panel2").

En clair, la référence utilisée ici
  Controls.Remove(panel1);
n'est pas du tout celle définie ici
  Panel panel1 = new System.Windows.Forms.Panel();

/*
coq
MVP Visual C#
CoqBlog
*/
3
drx7 Messages postés 16 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 8 juin 2009
2 juin 2009 à 19:05
ok j'ai compris mais je vois pas comment faire il faut utiliser quel outil?

impossible is nothing!
0