13

你能有一个多列列表视图控件,其中一列是一个复选框吗?示例代码或链接将不胜感激。

我正在使用视觉工作室 2005

4

8 回答 8

22

更好地使用网格视图控件,但是如果您想要一个带有复选框的列并且该列是第一列,您可以编写:

this.listView1.CheckBoxes = true;
于 2008-09-17T14:34:27.057 回答
7

Allan Anderson 创建了一个自定义控件来让您执行此操作。你可以在这里找到它: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
于 2008-09-13T17:07:11.467 回答
7

添加复选框列,如下所示。

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);
于 2011-04-04T02:35:02.770 回答
5

你为什么不试试Mathew Hall 的 XPTable

于 2011-04-13T01:01:33.753 回答
4

您可以改用网格视图,因为这样可以更好地控制列内容。

于 2008-09-13T17:21:50.150 回答
3

也许ListView.Checkboxes

于 2008-09-13T17:08:47.327 回答
3

您可以将CheckBoxes属性设置为true. 在代码中,可以这样完成:

listView1.CheckBoxes = true;
于 2015-06-22T08:27:34.857 回答
1

您可以尝试TreeViewAdv。它是开源的,托管在 sourceforge 上。

于 2008-09-13T17:33:35.177 回答