使用 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 控件。将其拖到您的表单上,填充它并试一试。
我有一个名为 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 控件。将其拖到您的表单上,填充它并试一试。