【问题标题】:How to add list items to a ListView in C#winform?如何在 C#winform 中将列表项添加到 ListView?
【发布时间】:2017-05-08 07:22:54
【问题描述】:

我有一个对象列表。我想将这些项目添加到 ListView。我正在尝试逐行添加每个列表项,但格式非常糟糕,它应该采用正确的表格类型格式。

        List<string> lst = new List<string>();
        lst.Add("John dsfsfsdfs " + "1" + 100);
        lst.Add("Smith sdfsdfsdfs" + "2" + 120);
        lst.Add("Cait dsffffffffffffffffffffff" + "3" +  97);
        lst.Add("Irene" + "4" + 100);
        lst.Add("Ben"     + "5" + 100);
        lst.Add("Deniel           jjhkh " +  "6" + 88);

        foreach(string pl in lst)
        {
            listView1.Items.Add(pl);

        }

项目是不可见的,它应该是正确的格式。

【问题讨论】:

  • ListView 控件可以通过多种方式显示项目。对于表格视图,请确保将 View 属性设置为 Details
  • 我尝试设置详细信息,但它显示的是空白列表视图
  • 您是否设置了Columns 属性? “如果您的 ListView 控件没有指定任何列标题,并且您将 View 属性设置为 Details,则 ListView 控件将不会显示任何项目。”
  • not working 不是有用的信息!

标签: c# winforms listview


【解决方案1】:

使其成为多列:

1) 将 ListView 设置为 Details 模式:

    listView1.View = View.Details;

2) 设置你的三栏:

    listView1.Columns.Add("Column1Name");
    listView1.Columns.Add("Column2Name");
    listView1.Columns.Add("Column3Name");

3) 添加您的项目:

    listView1.Items.Add(new ListViewItem(new string[]{"John dsfsfsdfs ", "1" , "100"}));

4) 为了使其更容易看到,请尝试:

listView1.GridLines = true;

5) 隐藏列标题:

 listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;

【讨论】:

  • 如果您只想在单列列表视图中添加字符串列表,这是正确的 :) 在您的情况下,您应该避免它。只需使用“使其成为多列”下面的所有内容就可以了:)
  • 有什么办法可以隐藏列名??
  • 而且真的不行。你是对的。我会更正我的答案,对不起
【解决方案2】:

您可以直接使用ListViewItem 来创建带有子项(->“表格”)的项目,而不仅仅是将字符串添加到您的 ListView:

listView1.Items.Add(new ListViewItem (new[]{"John dsfsfsdfs", "1", "100"}));
listView1.Items.Add(new ListViewItem (new[]{"Smith sdfsdfsdfs", "2", "120"}));
listView1.Items.Add(new ListViewItem (new[]{"Cait dsffffffffffffffffffffff", "3", "97"}));
listView1.Items.Add(new ListViewItem (new[]{"Irene", "4", "100"}));
listView1.Items.Add(new ListViewItem (new[]{"Ben", "5, "100"}));
listView1.Items.Add(new ListViewItem (new[]{"Deniel           jjhkh", "6", "88"}));

【讨论】:

  • 非常感谢,正是我想要的,简单明了。
【解决方案3】:

你能不能创建一个DataTable并将它绑定为一个源

foreach (DataRow row in data.Rows)
{
    ListViewItem item = new ListViewItem(row[0].ToString());
    for (int i = 1; i < data.Columns.Count; i++)
    {
        item.SubItems.Add(row[i].ToString());
    }
    listView_Services.Items.Add(item);
}

【讨论】:

    猜你喜欢
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2021-08-18
    • 2017-09-19
    • 1970-01-01
    相关资源
    最近更新 更多