我在C sharp windows窗体应用程序中有一个listview,如下所示。 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);
}
我尽力了。我甚至没有看到我犯了一个错误。有人可以给我一个解决方案吗?
答案 0 :(得分:3)
对于不同的列,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);
}