none
probleme rafraichissement listbox RRS feed

  • Question

  • bonjour, 

    Dans une fenetre j'ai une liste de ville et un bouton ajouter 
    alors lorsque je clique sur ce bouton il m' affiche une petite fenetre contenant un textbox et 2 boutons valider et annuler, alors lorsque il valide je veux que ce qu'est ecrit dans le textbox s'ajoute dans la liste de la fenetre parent mais ca ne s'ajoute pas et lorsuque je compte le nbre d'items de la liste alors ca augmente ca veut dire qu'il est ajouté mais qu'l s'affiche pas 
    voila le code du boutton valider 

    Code C# :
    private void button1_Click(object sender, EventArgs e) 
            { 
                this.textBox1.Text = "sdwdc:" + this.frmParent.getList().Items.Count; 
                if (this.textBox1.Text != "") 
                { 
                    //this.frmParent.Activate(); 
                    //this.frmParent.Focus(); 
                    //this.getForm().getList().Refresh(); 
                    //this.frmParent.Select(); 
                    //this.frmParent.getList().Items.Add("wdvxdgbfxgbxgbnc"); 
                    this.getForm().getList().Items.Add("" + textBox1.Text); 
                     
                    this.getForm().getList().Refresh(); 
                    this.Close(); 
                    return; 
                } 
                else { 
                    this.Close(); 
                    return; 
                } 
                 
                 
            } 
    



    ts ce qui est en commentaire je l'ai fais mais pas de resultat 
    est ce que vous avez une idée 


    merci d'avance 
    mercredi 29 février 2012 19:38

Réponses

  • Bonjour,

    Vous essayez d'ajouter une item dans une ListView qui est bindé à une liste "List<string>". Si vous voulez ajouter un élément dans la ListView, vous devez utiliser la liste "List<string>" et non la ListView directement.

    De plus avec le DataBinding on utilise pas la List<string> mais une BindingList<string>. Ci-joint le code corrigé :

        public partial class Form1 : Form
        {
            private BindingList<string> _items;
    
            public Form1()
            {
                InitializeComponent();
                loadVille();
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                nouv_ville nv = new nouv_ville();
                InitializeComponent();
                nv.ShowDialog();
            }
    
            public void loadVille()
            {
                CnxAcces conn = new CnxAcces();
                DataSet a = conn.getDataset("select NOM_VILLE from VILLE");
                listBox1.ClearSelected();
                this._items = new BindingList<string>();
                for (int i = 0; i < a.Tables[0].Rows.Count; i++)
                {
                    _items.Add("" + a.Tables[0].Rows[i].ItemArray[0].ToString());
                    //listBox1.Items.Add("" + a.Tables[0].Rows[i].ItemArray[0].ToString());
                }
                listBox1.DataSource = _items;
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                this._items.Add("new");
            }
        }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    jeudi 1 mars 2012 13:29
    Modérateur

Toutes les réponses

  • Bonjour,

    Je n'arrive pas à reporduire votre problème. Pouvez-vous nous soumettre une partie de votre application (ou une projet) qui reproduirait votre problème ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mercredi 29 février 2012 21:22
    Modérateur
  • voila le lien l'aplication

    http://www.2shared.com/file/DduK1baD/tp1_ihm_database_villes.html

    et voila le lien la base de donnees access

    http://www.2shared.com/file/Tvl2PFe6/Suivi_Commercial.html

    merci d'avance

    mercredi 29 février 2012 21:49
  • Bonjour,

    Vous essayez d'ajouter une item dans une ListView qui est bindé à une liste "List<string>". Si vous voulez ajouter un élément dans la ListView, vous devez utiliser la liste "List<string>" et non la ListView directement.

    De plus avec le DataBinding on utilise pas la List<string> mais une BindingList<string>. Ci-joint le code corrigé :

        public partial class Form1 : Form
        {
            private BindingList<string> _items;
    
            public Form1()
            {
                InitializeComponent();
                loadVille();
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                nouv_ville nv = new nouv_ville();
                InitializeComponent();
                nv.ShowDialog();
            }
    
            public void loadVille()
            {
                CnxAcces conn = new CnxAcces();
                DataSet a = conn.getDataset("select NOM_VILLE from VILLE");
                listBox1.ClearSelected();
                this._items = new BindingList<string>();
                for (int i = 0; i < a.Tables[0].Rows.Count; i++)
                {
                    _items.Add("" + a.Tables[0].Rows[i].ItemArray[0].ToString());
                    //listBox1.Items.Add("" + a.Tables[0].Rows[i].ItemArray[0].ToString());
                }
                listBox1.DataSource = _items;
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                this._items.Add("new");
            }
        }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    jeudi 1 mars 2012 13:29
    Modérateur
  •  

    Bonjour, Angelo Marco,

    Est-ce que vous avez testé la solution proposée ? Merci de tenir la communauté informée sur la suite de vos démarches.

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 5 mars 2012 08:24