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

È stato utile?

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

È 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top