2009-04-24 7 views
1

Est-il possible de supprimer les cases à cocher d'un contrôle .NET WinForms ListView lors de l'exécution?Les cases à cocher peuvent-elles être supprimées d'un .NET WinForms ListView lors de l'exécution?

Le code suivant semble avoir aucun effet lorsque » .Checkboxes' a d'abord été mis à « vrai » et le contrôle a rendu sur un formulaire avec des cases à cocher disponibles pour chaque affichage de la liste objet:

// C#: 
testListView.BeginUpdate(); 
testListView.Checkboxes = false; 
testListView.EndUpdate(); 

Est y a-t-il une méthode qui doit être appelée pour appliquer ce changement? Quelle est l'utilité de fournir la propriété .Checkboxes quand elle est définie par défaut sur 'false' et n'a d'effet que si elle est définie sur 'true'?

Répondre

3

Je viens de créer un exemple de projet en utilisant VS 2008 avec le code suivant et il semblait avoir travaillé:

private void Form1_Load(object sender, EventArgs e) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      ListViewItem lvi = new ListViewItem("Test"); 
      listView1.Items.Add(lvi); 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     listView1.CheckBoxes = false; 
    } 

les propriétés de mon listview sont les suivantes:

 this.listView1.CheckBoxes = true; 
     this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 
     this.columnHeader1}); 
     this.listView1.GridLines = true; 
     this.listView1.Location = new System.Drawing.Point(12, 12); 
     this.listView1.Name = "listView1"; 
     this.listView1.Size = new System.Drawing.Size(224, 174); 
     this.listView1.TabIndex = 0; 
     this.listView1.UseCompatibleStateImageBehavior = false; 
     this.listView1.View = System.Windows.Forms.View.Details; 
+0

Je viens de vérifier que Ce code fonctionne également dans VS 2005. Il semble qu'il y ait eu quelque chose d'autre dans mon code provoquant le ListView à maintenir son état de case à cocher. – James

+0

Super! Heureux d'avoir pu aider. – CodeLikeBeaker