首页 > 解决方案 > 如何将子项从 ListBox 添加到 ListView?

问题描述

列表框中的每个项目都以逗号分隔。通过拆分列表框的每一行,我只能将最后一项(例如 STEVEN、D、E、F)添加到列表框中,但不能将列表框中的其他项添加到 ListView

图 lb1

如何解决?

foreach (string item in listBox2.Items)
{
  ListViewItem li = new ListViewItem();
  var a = item.Split(',');
  li.Text = a[0].Trim();
  li.SubItems.Add(a[1].Trim());
  li.SubItems.Add(a[2].Trim());
  li.SubItems.Add(a[3].Trim());
  listView1.Items.Add(li);
}

标签: c#winformslistviewlistbox

解决方案


要以这种方式使用ListView,您应该将其View属性设置为Details并添加Columns以在拆分后显示每个字符串项。您不能使用您的代码,因为拆分返回不相等的字符串数组。相反,您可以这样做:

foreach (string a in ListBox1.Items)
{
    var arr = a.Replace(" ", "").Split(',');

    ListViewItem lvi = new ListViewItem(arr[0]);

    for(int i = 1; i < arr.Length;i++)
    {
        if(i >= ListView1.Columns.Count )
        {
            ListView1.Columns.Add($"Column {i}");
        }
        lvi.SubItems.Add(arr[i]);
    }
    ListView1.Items.Add(lvi);
}

祝你好运。


推荐阅读