我尝试读取listview
中给定列的整行由于我是C#的新手并使用listview,我发现它不能用作List
以下是我使用的代码(我在某些网站中找到的解决方案)
for (int i = 0; i < rapview.Items.Count; ++i)
{
int idx = 0;
foreach (ColumnHeader header in rapview.Columns)
{
if (header.Text == "Bak. €")
{
MyArray[0] = GeneralMethod.GetClientName(conn, rapview.Items[1].Text);
di = new ListViewItem(MyArray);
tmpView.Items.Add(di);
}
++idx;
}
}
我想检索第一列第7列单元格,但我看到rapview.Items [1] .Text为空,类似于第7列。
要么我错过了某些东西,要么解决方案不正确。
如何读取这些单元格的值。如果可能,通过绕过foreach循环使用列号?
答案 0 :(得分:1)
这是一个循环,它将第7列中的每个值复制到字符串列表中。
如果行中没有第7列,则添加一个空字符串。
int column = 6;
List<string> values = new List<string>();
foreach (ListViewItem lvi in rapview.Items)
if (lvi.SubItems.Count - 1 < column) values.Add("");
else values.Add(lvi.SubItems[column].Text);
请注意,C#从零开始计数,因此第7列的索引为6。
您可以将第1行第7列中的值测试为:
Console.WriteLine("Cell 7 in row 1 contains:" + values[0]);
请注意,Item
中的每个ListView
都可以拥有自己的SubItems
个数。因此我们必须在访问之前对其进行测试!
另请注意,SubItem[0]
与Item
具有相同的值/文字!