C sharp -winform应用程序的列表视图

本文关键字:列表 视图 应用程序 sharp -winform | 更新日期: 2023-09-27 17:52:12

我在C sharp windows窗体应用程序中有一个列表视图,如下所示。下面的代码行在Form_load()方法中。

但问题是它不会从第一列开始插入一行。相反,它从第二列开始。因为传递到最后一列的值总是丢失的。

        listView1.Columns.Add("ColumnOne", 150);
        listView1.Columns.Add("ColumnTwo", 150);
        listView1.Columns.Add("ColumnThree", 150);
        listView1.Columns.Add("ColumnFour", 150);
        listView1.Columns.Add("ColumnFive", 150);
        listView1.Columns.Add("Column6", 150);
        foreach (MyClass et in _myData)
        {
            ListViewItem lt = new ListViewItem();
            lt.SubItems.Add(et.DataOne.ToString());
            lt.SubItems.Add(et.DataTwo.ToString());
            lt.SubItems.Add(et.DataThree.ToString());
            lt.SubItems.Add(et.DataFour.ToLongDateString());
            lt.SubItems.Add(et.DataFive);
            lt.SubItems.Add(et.DataSix);
        }

我尝试了所有可能的方法。我甚至没有意识到我犯了一个错误。谁能给我一个解决办法?

C sharp -winform应用程序的列表视图

当涉及到不同的列时,ListView有点笨拙。在Detail视图的第一列中显示的实际上是ListViewItem本身的文本,而不是第一个SubItem。那么你要做的就是开始将DataTwo等赋值给subgroupsDataOne赋值给ListViewItem.Text:

listView1.Columns.Add("ColumnOne", 150);
listView1.Columns.Add("ColumnTwo", 150);
listView1.Columns.Add("ColumnThree", 150);
listView1.Columns.Add("ColumnFour", 150);
listView1.Columns.Add("ColumnFive", 150);
listView1.Columns.Add("Column6", 150);
foreach (MyClass et in _myData)
{
    ListViewItem lt = new ListViewItem(et.DataOne.ToString());
    lt.SubItems.Add(et.DataTwo.ToString());
    lt.SubItems.Add(et.DataThree.ToString());
    lt.SubItems.Add(et.DataFour.ToLongDateString());
    lt.SubItems.Add(et.DataFive);
    lt.SubItems.Add(et.DataSix);
    // I added this to your code
    listView1.Items.Add(lt);
}