Pergunta

Você pode ter um controle listview com várias colunas onde uma das colunas é uma caixa de seleção?Código ou links de exemplo seriam muito apreciados.

Estou usando o visual studio 2005

Foi útil?

Solução

Allan Anderson criou um controle personalizado para permitir que você faça isso.Você pode encontrá-lo aqui: http://www.codeproject.com/KB/list/aa_listview.aspx

Aqui está um exemplo de código para esse controle:


    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

Outras dicas

É melhor usar o controle de visualização em grade, mas se quiser apenas uma coluna com caixas de seleção e essa coluna é a primeiro um que você pode simplesmente escrever:

this.listView1.CheckBoxes = true;

Adicione a coluna Checkbox como abaixo.

myListView.CheckBoxes = true;
myListView.Columns.Add(text, width, alignment);

Adicione ListViewItem s como abaixo.

ListViewItem lstViewItem = new ListViewItem();
lstViewItem.SubItems.Add("Testing..");
lstViewItem.SubItems.Add("Testing1..");

myListView.Items.Add(lstViewItem);

Por que você não tenta XPTable por Mathew Hall

Você pode definir o CheckBoxes propriedade para true.No código isso pode ser feito assim:

listView1.CheckBoxes = true;

Você poderia usar uma visualização em grade, pois isso oferece um controle mais preciso do conteúdo da coluna.

Podes tentar TreeViewAdv.É de código aberto e hospedado no sourceforge.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top