Флажок в списке управления - PullRequest
       17

Флажок в списке управления

10 голосов
/ 13 сентября 2008

Можете ли вы иметь многоколоночный элемент управления списком, где один из столбцов является флажком? Пример кода или ссылки будут с благодарностью.

Я использую Visual Studio 2005

Ответы [ 8 ]

20 голосов
/ 17 сентября 2008

Лучше использовать контроль вида сетки, но если вы хотите только один столбец с флажками, и этот столбец - первый , вы можете просто написать:

this.listView1.CheckBoxes = true;
7 голосов
/ 04 апреля 2011

Добавить столбец флажка, как показано ниже.

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

Добавьте ListViewItem, как показано ниже.

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

myListView.Items.Add(lstViewItem);
7 голосов
/ 13 сентября 2008

Аллан Андерсон создал пользовательский элемент управления, чтобы позволить вам сделать это. Вы можете найти его здесь: http://www.codeproject.com/KB/list/aa_listview.aspx

Вот пример кода для этого элемента управления:


    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
4 голосов
/ 13 апреля 2011

Почему бы вам не попробовать XPTable от Мэтью Холла

3 голосов
/ 22 июня 2015

Вы можете установить для свойства CheckBoxes значение true. В коде это можно сделать так:

listView1.CheckBoxes = true;
3 голосов
/ 13 сентября 2008
2 голосов
/ 13 сентября 2008

Вместо этого вы можете использовать вид сетки, поскольку это дает вам более точный контроль над содержимым столбца.

1 голос
/ 13 сентября 2008

Вы можете попробовать TreeViewAdv . Это открытый исходный код и размещен на sourceforge.

...