VB新手求助:如何在DataGridView中点击已选中行取消选中
DataGridView点击已选中行取消选中的VB实现
实现步骤
- 确认你的DataGridView的
SelectionMode属性已设置为FullRowSelect(你已完成此操作,可跳过) - 给DataGridView添加
RowMouseClick事件处理程序,在事件中判断并处理选中状态
代码示例
Private Sub DataGridView1_RowMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.RowMouseClick ' 跳过表头行的点击 If e.RowIndex >= 0 Then Dim clickedRow = DataGridView1.Rows(e.RowIndex) ' 如果该行已选中,就取消选中 If clickedRow.Selected Then clickedRow.Selected = False ' 若需要清空所有选中行,替换成下面这行: ' DataGridView1.ClearSelection() End If End If End Sub
补充说明
- 使用
RowMouseClick而非CellClick的原因:整行选中模式下,点击行的任意区域(单元格、行头)都会触发该事件,覆盖场景更全 - 必须判断
e.RowIndex >= 0,防止点击表头时引发索引越界错误 - 若你的DataGridView设置为
MultiSelect=True(允许多选),上述代码只会取消当前点击的行;若为MultiSelect=False(单选),取消后将无选中行,符合需求
内容的提问来源于stack exchange,提问作者Ross from Brooklin
相关产品推荐
相关产品推荐

