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);
}
我尝试了所有可能的方法。我甚至没有意识到我犯了一个错误。谁能给我一个解决办法?
当涉及到不同的列时,ListView
有点笨拙。在Detail
视图的第一列中显示的实际上是ListViewItem
本身的文本,而不是第一个SubItem
。那么你要做的就是开始将DataTwo
等赋值给subgroups
将DataOne
赋值给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);
}