使用 vb.net 在 Datagridview 中选择单元格

Selecting cells in Datagridview using vb.net

我有一个名为 datagridview1 的数据网格视图,其中包含来自 ms sql 的 table。我想 select 一个单元格,然后 select 另一个单元格,而不需要取消 select 我之前 select 编辑过的第一个单元格。我该怎么做?

我试过这个代码,它没有 selecting 任何东西:

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    If DataGridView1.CurrentCell.Selected = True Then
        DataGridView1.CurrentCell.Selected = False
    Else
        DataGridView1.CurrentCell.Selected = True
    End If

End Sub

有什么建议吗?

然后我想您可以滚动自己的 datagridview 并覆盖 OnCellMouseDown 和 OnCellMouseUp 事件来为您提供这种效果,而无需 mouseup 取消当前选定的项目。

在您的解决方案中创建一个新的 class 并继承 datagridview

Public Class MyDataGridView
    Inherits DataGridView

    Protected Overrides Sub OnCellMouseDown(e As DataGridViewCellMouseEventArgs)
        Me.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = Not Me.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected
    End Sub

    Protected Overrides Sub OnCellMouseUp(e As DataGridViewCellMouseEventArgs)
    End Sub
End Class

这应该可以消除在标准单元格中鼠标单击事件处理完全时发生的情况,该事件将取消选择先前的选择(除非使用 CTRL 键)。

添加这段代码,编译它,您应该会在工具箱的顶部看到一个 MyDataGridView 控件。将其拖到您的表单上,填充它并试一试。