Casella di controllo nel controllo visualizzazione elenco
-
09-06-2019 - |
Domanda
Puoi avere un controllo listview a più colonne in cui una delle colonne è una casella di controllo?Codice o collegamenti di esempio sarebbero molto apprezzati.
Sto usando Visual Studio 2005
Soluzione
Allan Anderson ha creato un controllo personalizzato per consentirti di eseguire questa operazione.Potete trovare qui: http://www.codeproject.com/KB/list/aa_listview.aspx
Ecco qualche esempio di codice per quel controllo:
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
Altri suggerimenti
Meglio usare il controllo della visualizzazione della griglia, ma se vuoi soltanto una colonna con caselle di controllo e quella colonna è il Primo uno puoi semplicemente scrivere:
this.listView1.CheckBoxes = true;
Aggiungi la colonna Casella di controllo come di seguito.
myListView.CheckBoxes = true;
myListView.Columns.Add(text, width, alignment);
Aggiungi ListViewItem come di seguito.
ListViewItem lstViewItem = new ListViewItem();
lstViewItem.SubItems.Add("Testing..");
lstViewItem.SubItems.Add("Testing1..");
myListView.Items.Add(lstViewItem);
Perché non ci provi? XPTavolo di Mathew Hall
Forse ListView.Checkboxes.
È possibile impostare il CheckBoxes
proprietà a true
.Nel codice questo può essere fatto in questo modo:
listView1.CheckBoxes = true;
Potresti invece utilizzare una visualizzazione a griglia, in quanto ciò ti offre un controllo più preciso del contenuto delle colonne.
Puoi provare TreeViewAvv.È open source e ospitato su sourceforge.