C#listView,如何将项目添加到第2,​​3和4列等?

105 c# listview winforms

要将项目添加到我正在使用的listView控件(Winform)中的第1列listView1.Items.Add,这可以正常工作,但如何将项目添加到第2列和第3列等?

Ini*_*eer 131

有几种方法可以做到,但这里有一个解决方案(4列).

string[] row1 = { "s1", "s2", "s3" };
listView1.Items.Add("Column1Text").SubItems.AddRange(row1);
Run Code Online (Sandbox Code Playgroud)

这里有一个更冗长的方式:

ListViewItem item1 = new ListViewItem("Something");
item1.SubItems.Add("SubItem1a");
item1.SubItems.Add("SubItem1b");
item1.SubItems.Add("SubItem1c");

ListViewItem item2 = new ListViewItem("Something2");
item2.SubItems.Add("SubItem2a");
item2.SubItems.Add("SubItem2b");
item2.SubItems.Add("SubItem2c");

ListViewItem item3 = new ListViewItem("Something3");
item3.SubItems.Add("SubItem3a");
item3.SubItems.Add("SubItem3b");
item3.SubItems.Add("SubItem3c");

ListView1.Items.AddRange(new ListViewItem[] {item1,item2,item3});
Run Code Online (Sandbox Code Playgroud)


bru*_*nde 64

您可以将项目/子项添加到ListView,如:

ListViewItem item = new ListViewItem(new []{"1","2","3","4"});
listView1.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)

但我怀疑你的问题是视图类型.在设计器中将其设置为Details或在代码中执行以下操作:

listView1.View = View.Details;
Run Code Online (Sandbox Code Playgroud)

  • 使用“listView1.FullRowSelect = true”也很重要……否则只有第 1 列是可点击的。我希望我早点知道这一点!它会为我节省大量的工作。 (3认同)

Cal*_*inR 7

这是listview对象和listviewItem对象上的msdn文档.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

我强烈建议您至少花时间浏览.net框架中使用的任何对象的文档.虽然文档在某些时候可能非常差,但它仍然非常宝贵,特别是在遇到这样的情况时.

但正如詹姆斯·阿特金森所说,这只是将一个子项目添加到listviewitem中的问题:

ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");
Run Code Online (Sandbox Code Playgroud)


ken*_*ard 7

 private void MainTimesheetForm_Load(object sender, EventArgs e)
        {
            ListViewItem newList = new ListViewItem("1");
            newList.SubItems.Add("2");
            newList.SubItems.Add(DateTime.Now.ToLongTimeString());
            newList.SubItems.Add("3");
            newList.SubItems.Add("4");
            newList.SubItems.Add("5");
            newList.SubItems.Add("6");
            listViewTimeSheet.Items.Add(newList);

        }
Run Code Online (Sandbox Code Playgroud)