如何以编程方式选择 DataGridView 中新添加的每个行?

Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
2024-05-20T08:17:26.2966667+00:00

我设置了一个按钮,可以向我的数据网格添加新行。

我试过了 DataGridView1.CurrentCell = DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(0)

虽然此代码确实选择了每个新添加的行,但它将我所有的 True 重置为 False(我有复选框,允许用户在 true 和 false 之间更改列)。这仅在实现此代码时发生。

编辑:我刚刚发现它只是对新添加的行之前的行感到不满。

Note:此问题总结整理于:How can I programmatically select every newly added row in a DataGridView?

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
73 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 46,296 信誉分 Microsoft 供应商
    2024-05-20T09:04:20.8566667+00:00

    我这边做了一个测试,这是我的测试结果。 140404-gif.gif

    似乎它确实选择了每个新添加的行。 我的测试代码。

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load  
            DataGridView1.Rows.Add("row1", "2", 3.5, False, False)  
            DataGridView1.Rows.Add("cookie", "1", 4, False, True)  
            DataGridView1.Rows.Add("row2", "3", 4.5, True, False)  
            DataGridView1.Rows.Add("cookie", "1", 5.5, False, True)  
        End Sub  
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
            For Each row As DataGridViewRow In DataGridView1.Rows  
                If row.Cells(0).Value = "cookie" Then  
                    row.Cells(1).Value = Double.Parse(row.Cells(1).Value)  
                    row.Cells(2).Value = Double.Parse(row.Cells(2).Value)  
                End If  
            Next  
      
            Dim rowId As Integer  
            rowId = DataGridView1.Rows.Add("cookie", "1", 3.5, True, True)  
            DataGridView1.CurrentCell = DataGridView1.Rows(rowId).Cells(0)  
        End Sub  
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。