如何读取列表视图中的列单元格

How to read a column cell in 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;
    }
}

我想检索第 1 列第 7 列单元格,但我看到 rapview.Items[1]。第 7 单元格的文本为空且类似。

要么是我遗漏了什么,要么是给出的解决方案不正确。

如何读取这些单元格的值。如果可能,绕过 foreach 循环使用列号?

这是一个将第 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]);

请注意,ListView 中的每个 Item 都可以有自己的 SubItems。因此,我们必须在访问它之前对其进行测试!

另请注意 SubItem[0]Item!

具有相同的 value/text