IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

suppression du contenu d'un panel + checkbox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut suppression du contenu d'un panel + checkbox
    bonjour
    j'ai un panel dans lequel j'affiche à partir d'un bouton ajouté un composant que j'ai crée avec un Control utilisateur qui comporte une case à coché, je souhaite pouvoir supprimé tous les composant affiché dans ce panel dont les check box sont coché et cela à partir d'un bouton supprimé.
    merci pour vos réponse .

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Si j'ai bien compris ce que tu veux, voici un exemple de ce qu'il faudrait faire :
    panel1 -> ton panel
    myUserControl -> ton usercontrol
    checkBox1 -> le nom du control checkbox dans ton usercontrol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach (Control ctrl in panel1.Controls)
    {
            if (ctrl is myUserControl)
            {
                  if (ctrl.checkBox1.Checked)
                        panel1.Controls.Remove(ctrl);
            }
    }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    merci Aeronia pour votre réponse, j'ai essayé le code, à première coup de vue cela marchait, mais par contre il ne supprimait pas tout, explication [ cela génère une exception car on ne peu pas supprimer une collection dans une boucle foreach] mais par contre j'ai pu le faire autrement avec un boucle for simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     {
                // pour la suppression
                int nb = panel3.Controls.Count;
     
                for (int i = nb - 1; i >= 0; i--)
                {
     
                    if (panel3.Controls[i] is UcTest)
                    {
     
                        UcTest uct = panel3.Controls[i] as UcTest;
                        if (uct.Checked == true)
                        {
                            panel3.Controls.Remove(uct);
     
     
                        }
     
                    }
     
                }
     
            }
    donc voila le code si cela peut intéresser quelqu’un
    maintenant, je dois créer un compteur qui alimente un label se trouvant dans le Contrôle que j'ai crée, donc a chaque fois que je clique sur le bouton ajouter, j'ai un Contrôle qui se rajoute, et dans ce contrôle je veux mettre le numéro d’ordre d'ajout.
    merci pour toute réponse de votre part

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Oups j'ai fait une erreur de débutant x) J'ai pas testé le code encore dsl ^^

    Pour le problème suivant, tu peux simplement utiliser une variable int NombreUserControls qui est incrémenté lors de l'ajout d'un UserControl dans ton panel, et utiliser cette variable lors de l'initialisation de nouveaux UserControls

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    je vais l'essayer merci

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    en fin de compte j'ai fais autrement, et cela marche pour l'ajout, mais par contre quand je supprime, les indices ne sont pas actualisé!! par exemple je crée clrl1 , clrl2, clrl3, clrl4, clrl5; si je supprime le 2 et le 4, j'ai 1 , 3, 5; je souhaite que ca le remette a jour avec 1,2,3
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    private void button2_ajouter(object sender, EventArgs e)
            {
                // pour l'ajout
                // on va gérer par la meme occasion l'affichage des contrôls ajouter
                //pour cela on va lire à l'envers et on rajoute dans l'ordre
                UcTest uct = new UcTest();
                uct.Visible = true;
     
                         //on crée un compteur d'ajout
                int nbControls = panel3.Controls.Count;
     
                        //on crée un tableau de control
                UcTest[] ucts = new UcTest[nbControls+1];
     
                uct.LabelCompteur = nbControls + 1 + "";
                ucts[0] = uct;
     
     
                for (int j = nbControls ; j > 0; j--)
                {
                    ucts[j] =  (UcTest)panel3.Controls[j-1];
                    ucts[j].LabelCompteur = nbControls + 1 -j+"";
                }
     
     
                panel3.Controls.Clear();
                for (int j = 0; j <= nbControls; j++)
                {
                    ucts[j].Dock = DockStyle.Top;
                    panel3.Controls.Add(ucts[j]);
                }
     
            }
     
            private void button1_suppression(object sender, EventArgs e)
            {
     
                int nbControls = panel3.Controls.Count;
     
                for (int i = nbControls - 1; i >= 0; i--)
                {
     
                    if (panel3.Controls[i] is UcTest)
                    {
     
                        UcTest uct = panel3.Controls[i] as UcTest;
                        if (uct.Checked == true)
                        {
                            panel3.Controls.Remove(uct);
     
     
                        }
     
                    }
     
                }
     
                cb.Checked = false;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de suppression du contenu d'un champ
    Par VIRGINIE87 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 19/02/2007, 10h45
  2. [js] suppression du contenu balise script
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/02/2007, 08h45
  3. [VB6]Comment obtenir le contenu textbox grace a checkbox ?
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/04/2006, 13h38
  4. Suppression de contenu d'un fichier
    Par kubito dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 20h51
  5. [C#]Comment effacer le contenu d'un panel !!
    Par drekkii dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 08h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo