【问题标题】:Delete last row in datagridview删除datagridview中的最后一行
【发布时间】:2014-02-05 10:10:50
【问题描述】:

我正在尝试以编程方式删除 datagridview 的最后一行,但我无法。以下是我目前尝试过的:

DataGridView1.Rows.RemoveAt(DataGridView1.Rows.Count - 1)

我也试过选择最后一行然后删除它,但也没有用

Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = True

DataGridView1.Rows.Remove(DataGridView1.CurrentRow)

Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = True

对于 DataGridView1.SelectedRows 中的每一行作为 DataGridViewRow DataGridView1.Rows.Remove(行) 下一个

我不断收到一条错误消息,提示“无法删除未提交的新行”。 谢谢

【问题讨论】:

  • 您是否尝试过从底层数据源(例如绑定源)中删除记录并刷新网格?

标签: vb.net


【解决方案1】:

尝试使用此行为属性设置您的 datagridview
AllowUserToAddRows 将其设置为 False
然后使用此代码

DataGridView1.Rows.RemoveAt(DataGridView1.Rows.Count - 1)

【讨论】:

    【解决方案2】:

    您可能需要在 DataSource 中的行上调用 RejectChanges。

    对于新行,这意味着删除。另请参阅:

    【讨论】:

    • 谢谢。但是,datagridview 实际上并没有绑定到 dataSourse。用户在 datagridview 中输入数据,然后按下保存按钮,数据将保存到多个 .txt 文件中。当用户添加信息说第 5 行时,就会出现新的第 6 行。我想删除最后一行 6,因为当用户按下保存按钮时,它会用 null/空值弄乱程序。
    • @user3080392:DataGridView 没有绑定有什么原因吗?我的意思是,您不必将其绑定到数据库,即可以手动创建 DataTable。这样管理起来更容易,您应该不再遇到您描述的问题。此外,这是有关此问题范围的重要信息,因此请更新问题以将其包含在内。
    【解决方案3】:

    我没有删除最后一行,而是绕过它。我想出了如何选择除最后一行之外的所有行,然后我实现了只引用所选行的代码。

    Me.DataGridView1.ClearSelection()
    

    Me.DataGridView1.SelectAll()
    Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = False

    【讨论】:

      【解决方案4】:

      除了删除最后一个未提交的行,您可以阻止用户选择它。 通过将以下代码插入到 datagridview 的 cellclick 事件中。

       Dim i As Integer = DataGridView1.CurrentRow.Index
      
          If DataGridView1.Item(0, i).Value.ToString() = "" Then
              MsgBox("Sorry...Blank Row")
              DataGridView1.ClearSelection()
              DataGridView1.Rows(i - 1).Selected = True
              i = i - 1
          End If
      

      你的其他代码放在这里。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多