列表视图函数中的行错误帮助

本文关键字:错误 帮助 视图 函数 列表 | 更新日期: 2023-09-27 17:57:39

这是我正在使用的代码。

foreach (DataRow row in data.Rows)
{
    ListViewItem lst = default(ListViewItem);
    lst = lvw.Items.Add(row(0));  // My error is on row
    for (int i = 1; i <= data.Columns.Count - 1; i++)
    {
        lst.SubItems.Add(row(i));
    }
}

现在,我正在做或试图做的实际上是将数据库项添加到我的listview中。但是,我似乎无法将我的行放到列表视图中。我得到一个语法错误:

"Rows"是一个"变量",但其用法类似于"方法"。

几天来,我一直在与这种winform作斗争,我的编码在这一点上已经停止了。我试着把括号改了。这是整个功能。我在vb.net中从互联网上得到了它,并运行了它工作的代码。然后,我在vb.net中为我的应用程序配置了同样有效的代码,现在转换为c#后,它不起作用,这是我的问题。我浏览了所有的代码(我是c#的新手),并修复了除行错误之外的大部分代码,使其适用于我的应用程序

private void ShowDataInLvw(DataTable data, ListView lvw)
{       
    lvw.View = View.Details;
    lvw.GridLines = true;
    lvw.Columns.Clear();
    lvw.Items.Clear();
    foreach (DataColumn col in data.Columns)
    {
       lvw.Columns.Add(col.ToString());
    }
    foreach (DataRow row in data.Rows)
    {
        ListViewItem lst = default(ListViewItem);
        lst = lvw.Items.Add(row(0));
        for (int i = 1; i <= data.Columns.Count - 1; i++)
        {
            lst.SubItems.Add(row(i));
        }
    }  
}

列表视图函数中的行错误帮助

在C#中,要获取集合的索引,需要使用[ ](而VB使用( ))。请专门针对DataRows参考此内容。

因此,您的代码应该看起来像:

lst = lvw.Items.Add(row[0]);

lst.SubItems.Add(row[i])

附带说明一下,您可能想了解default关键字的使用情况。

编辑:

以下是一个完整的列表(没有太多的提示),在注意到您的代码实际上不会工作,并假设您真的打算按照描述进行操作之后:

foreach (DataRow row in data.Rows)
{
    ListViewItem lst = default(ListViewItem);
    for (int i = 0; i <= data.Columns.Count - 1; i++)
    {
        if (i == 0)
           lst = new ListViewItem(row[0].ToString());
        else
           lst.SubItems.Add(row[i].ToString());
    }
    lvw.Items.Add(lst);
}

注意几件事:

  • lst的实例化已更改
  • lvw将添加lst及其子项
  • 只有在创建子项之后才会进行添加

免责声明:我还没有测试代码,但想法就在那里

您尝试过吗:?

lst = lvw.Items.Add(row[0]);
lst.SubItems.Add(row[I]);