Case à cocher dans le contrôle ListView
-
09-06-2019 - |
Question
Pouvez-vous avoir un contrôle listview multicolonne où l’une des colonnes est une case à cocher ?Un exemple de code ou de liens serait grandement apprécié.
J'utilise Visual Studio 2005
La solution
Allan Anderson a créé un contrôle personnalisé pour vous permettre de faire cela.Vous pouvez le trouver ici: http://www.codeproject.com/KB/list/aa_listview.aspx
Voici un exemple de code pour ce contrôle :
GlacialList mylist = new GlacialList();
mylist.Columns.Add( "Column1", 100 ); // this can also be added
// through the design time support
mylist.Columns.Add( "Column2", 100 );
mylist.Columns.Add( "Column3", 100 );
mylist.Columns.Add( "Column4", 100 );
GLItem item;
item = this.glacialList1.Items.Add( "Atlanta Braves" );
item.SubItems[1].Text = "8v";
item.SubItems[2].Text = "Live";
item.SubItems[2].BackColor = Color.Bisque;
item.SubItems[3].Text = "MLB.TV";
item = this.glacialList1.Items.Add( "Florida Marlins" );
item.SubItems[1].Text = "";
item.SubItems[2].Text = "Delayed";
item.SubItems[2].BackColor = Color.LightCoral;
item.SubItems[3].Text = "Audio";
item.SubItems[1].BackColor = Color.Aqua; // set the background
// of this particular subitem ONLY
item.UserObject = myownuserobjecttype; // set a private user object
item.Selected = true; // set this item to selected state
item.SubItems[1].Span = 2; // set this sub item to span 2 spaces
ArrayList selectedItems = mylist.SelectedItems;
// get list of selected items
Autres conseils
Mieux vaut utiliser le contrôle de la vue en grille, mais si vous le souhaitez seulement une colonne avec des cases à cocher et cette colonne est la d'abord celui que vous pouvez simplement écrire :
this.listView1.CheckBoxes = true;
Ajoutez une colonne de case à cocher comme ci-dessous.
myListView.CheckBoxes = true;
myListView.Columns.Add(text, width, alignment);
Ajoutez des ListViewItem comme ci-dessous.
ListViewItem lstViewItem = new ListViewItem();
lstViewItem.SubItems.Add("Testing..");
lstViewItem.SubItems.Add("Testing1..");
myListView.Items.Add(lstViewItem);
Pourquoi n'essayes-tu pas XPTable par Mathew Hall
Peut être ListView.Checkboxes.
Vous pouvez définir le CheckBoxes
propriété à true
.Dans le code, cela peut être fait comme ceci :
listView1.CheckBoxes = true;
Vous pouvez plutôt utiliser une vue en grille, car cela vous donne un contrôle plus précis du contenu des colonnes.
Tu peux essayer TreeViewAdv.Il est open source et hébergé sur sourceforge.