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 :

[C#] Suppression dynamique combobox


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut [C#] Suppression dynamique combobox
    Maintenant que l'ajout va, j'ai un problème pour la supression

    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
     
    		private void Form1_Load(object sender, System.EventArgs e)
    		{
    			for(int i=0;i<5;i++)
    			{
    				ComboBox TempoCombo = new ComboBox();
    				TempoCombo.Location = new System.Drawing.Point(88, 72+i*30);
    				TempoCombo.Name = "TempoCombo"+i;
    				TempoCombo.Items.Add("1");
    				TempoCombo.Items.Add("2");
    				tabPage1.Controls.Add(TempoCombo);				
    			}
    		}
     
    		private void button1_Click(object sender, System.EventArgs e)
    		{
    			for (int i=0;i<5;i++)
    			{
    				ComboBox TempoCombo = new ComboBox();
    				TempoCombo.Location = new System.Drawing.Point(88, 72+i*30);
    				TempoCombo.Name = "TempoCombo"+i;
    				tabPage1.Controls.RemoveAt(i);
    			}
    		}
    Comment est ce que je connait (et donc comment est ce que je le fixe lors de la creation) l'index utilisé par RemoveAt ?

    Merci.

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    La collection Controls doit permetre le .Remove(ctrl as Control) non ?
    Tu passes directement le combo en parametre, ne t'embete pas avec des index.

    Sinon tu peux toujours faire un parcours de la collection jusqu'a ce que : Controls.Item(i) Is cbo then Contrrols.RemoveAt(i)

  3. #3
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Merci de ta réponse. J'essaye mais cela ne fonctionne pas il ne me supprime rien du tout.

    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
     
    		private void Form1_Load(object sender, System.EventArgs e)
    		{
    			for(int i=0;i<5;i++)
    			{
    				ComboBox TempoCombo = new ComboBox();
    				TempoCombo.Location = new System.Drawing.Point(88, 72+i*30);
    				TempoCombo.Name = "TempoCombo"+i;
    				TempoCombo.Items.Add("1");
    				TempoCombo.Items.Add("2");
    				tabPage1.Controls.Add(TempoCombo);				
    			}
    		}
     
    		private void button1_Click(object sender, System.EventArgs e)
    		{
    			for (int i=0;i<5;i++)
    			{
    				ComboBox TempoCombo = new ComboBox();
    				TempoCombo.Location = new System.Drawing.Point(88, 72+i*30);
    				TempoCombo.Name = "TempoCombo"+i;
    				tabPage1.Controls.Remove(TempoCombo);
    			}
    		}

  4. #4
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Tu ne peux pas supprimer le combo de cette manière... En recréant un combo, tu n'as pas la même instance de classe que le combo que tu souhaites supprimer.

    Tu dois faire un truc du style (j'ai pas testé mais ça devrait ressembler à ça) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach(Control c in MonTabPage.Controls)
    {
       if(c.GetType() == System.Windows.Forms.ComboBox && c.Name == "TempoComboX")
       {
           MonTabPage.Controls.Remove((ComboBox)c);
           break;
       }
    }
    @+

  5. #5
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Merci, j'essaye de l'adapter mais cela ne compile pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach(Control c in tabPage1.Controls)
    			{
    				if(c.GetType() == System.Windows.Forms.ComboBox && c.Name == "TempoCombo2")
    				{
    					tabPage1.Controls.Remove((ComboBox)c);
    					break;
    				}
    			}
    Voici ce qu'il me dit C:\Form1.cs(176): System.Windows.Forms.ComboBox' désigne un 'classe' qui n'est pas valide dans le contexte donné...

  6. #6
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Essaie ceci alors, ça devrait fonctionner, mais je ne suis pas certain que ce soit la manière la plus propre... Je n'ai pas de quoi tester autre chose ici. Je regarderai demain au boulot si j'en ai l'occasion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach(Control c in tabPage1.Controls)
    			{
    				if(c.GetType().ToString() == "System.Windows.Forms.ComboBox" && c.Name == "TempoCombo2")
    				{
    					tabPage1.Controls.Remove((ComboBox)c);
    					break;
    				}
    			}

  7. #7
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    OK J'ai trouvé...

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach(Control c in tabPage1.Controls) 
             { 
                if(c.GetType() == typeof(System.Windows.Forms.ComboBox) && c.Name == "TempoCombo2") 
                { 
                   tabPage1.Controls.Remove(c); 
                   break; 
                } 
             }

  8. #8
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Grand merci ca tourne !

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

Discussions similaires

  1. Suppression dynamique de bloc type <p>
    Par DoubleU dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/02/2007, 19h17
  2. suppression dynamique de tabpage
    Par jip06 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 26/01/2007, 11h28
  3. Suppression dynamique de composants
    Par krokmitaine dans le forum Delphi
    Réponses: 3
    Dernier message: 05/12/2006, 17h25
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50
  5. Suppression dynamique des bases...
    Par elmagnifico dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/04/2005, 17h13

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