|
■No48146 (はてな さん) に返信
> 選択された行を再選択した場合に、選択解除にするには
> どのようにすればよいでしょうか。
ListBox の SelectionMode のように切り替える機能は無さそうです。
MultiSelect = False、SelectionMode = FullRowSelect という前提になりますが、
こういう方法は如何でしょうか。
Private Sub DataGridView1_MouseDown(ByVal sender As DataGridView, _
ByVal e As MouseEventArgs) Handles DataGridView1.MouseDown
Dim hit = sender.HitTest(e.X, e.Y)
sender.Tag = Nothing
If hit.Type = DataGridViewHitTestType.RowHeader OrElse _
hit.Type = DataGridViewHitTestType.Cell Then
If sender.Rows(hit.RowIndex).Selected Then
sender.Tag = hit.RowIndex
End If
End If
End Sub
Private Sub DataGridView1_MouseUp(ByVal sender As DataGridView, _
ByVal e As MouseEventArgs) Handles DataGridView1.MouseUp
If TypeOf sender.Tag Is Integer Then
sender.Rows(CInt(sender.Tag)).Selected = False
End If
End Sub
|