如何读取Listview中的列单元格

时间:2015-02-21 16:30:21

标签: c# winforms listview

我尝试读取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循环使用列号?

1 个答案:

答案 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具有相同的值/文字!