C#:如何在ListView中添加子项

Iva*_*nov 25 .net c# list view winforms

创建项目(在键下)很简单,但如何添加子项(值)?

listView1.Columns.Add("Key");
listView1.Columns.Add("Value");
listView1.Items.Add("sdasdasdasd");
//How to add "asdasdasd" under value?
Run Code Online (Sandbox Code Playgroud)

小智 28

您将子项更新为数组并将该数组添加为列表项.

向数组添加值的顺序决定了它们出现的列,因此请将子项标题视为[0],[1],[2]等.

这是一个代码示例:

//In this example an array of three items is added to a three column listview
string[] saLvwItem = new string[3];

foreach (string wholeitem in listofitems)
{
     saLvwItem[0] = "Status Message";
     saLvwItem[1] = wholeitem;
     saLvwItem[2] = DateTime.Now.ToString("dddd dd/MM/yyyy - HH:mm:ss");

     ListViewItem lvi = new ListViewItem(saLvwItem);

     lvwMyListView.Items.Add(lvi);
}
Run Code Online (Sandbox Code Playgroud)

  • 更简单的替代方法是这样做:`listView.Items.Add(new ListViewItem(new string [] {"Col1","SubItem2","SubItem3","依此类推"})); (3认同)

Mar*_*s L 24

像这样:

ListViewItem lvi = new ListViewItem();
lvi.SubItems.Add("SubItem");
listView1.Items.Add(lvi);
Run Code Online (Sandbox Code Playgroud)


jas*_*nco 15

假设您有一个List Collection,其中包含要在ListView中显示的许多项,请使用以下示例迭代List Collection:

foreach (Inspection inspection in anInspector.getInspections())
  {
    ListViewItem item = new ListViewItem();
    item.Text=anInspector.getInspectorName().ToString();
    item.SubItems.Add(inspection.getInspectionDate().ToShortDateString());
    item.SubItems.Add(inspection.getHouse().getAddress().ToString());
    item.SubItems.Add(inspection.getHouse().getValue().ToString("C"));
    listView1.Items.Add(item);
  }
Run Code Online (Sandbox Code Playgroud)

该代码在ListView中生成以下输出(当然取决于List Collection中有多少项):

基本上第一列是包含许多子项(其他列)的listviewitem.它可能看起来很奇怪,但listview非常灵活,你甚至可以用它构建一个类似Windows的文件浏览器!