【问题标题】:Hide all rows in DataGridView using VB使用VB隐藏DataGridView中的所有行
【发布时间】:2019-06-11 15:29:57
【问题描述】:

我正在尝试过滤 DataGridView 中的数据,我需要隐藏所有行和列。我尝试使用循环列表 LINQ 和 lambda 表达式来执行此操作,因为如果我使用 foreach 尝试过滤 3000 行时会很慢。

以下代码执行没有错误,在 c# 中完美运行,但不隐藏 vb 中的行:

c# 完美运行

dataGridView1.Columns.OfType<DataGridViewColumn>().ToList().ForEach(col => col.Visible = false);

vb 不工作不隐藏行

datagrid.Rows.OfType(Of DataGridViewRow)().ToList().ForEach(Function(obj) obj.Visible = False)

当我通过 Sub 更改功能时向我发送错误

datagrid.Rows.OfType(Of DataGridViewRow)().ToList().ForEach(Sub(obj) obj.Visible = False)

我正在寻找与 vb 等效的 C# 代码或等效的操作。

【问题讨论】:

    标签: vb.net linq foreach datagridview datagridviewrow


    【解决方案1】:

    您的第一个问题是您在 c# 示例和 vb.net 示例之间执行的操作不同。可以删除列,因为当 Allow User To Add Rows 设置为 True 时,没有与行一样的附加列。这是显示在您的数据下方的行,允许用户将信息输入另一行。如果您将Allow user to add rows 设置为 False,则使用 Sub 提供的代码将起作用,但您也可以检查以确保您没有尝试设置 @ 987654323@ 隐藏,这就是你所说的错误,但没有转发给我们。

    如果您需要将Allow User To Add Rows 设置为True,那么只需使用:

    datagrid.Rows.OfType(Of DataGridViewRow)().ToList().ForEach(Sub(obj) If Not obj.IsNewRow Then obj.Visible = False)
    

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2020-08-11
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      相关资源
      最近更新 更多