覆盖DataGridView Shift + Space

mou*_*nty 5 vb.net datagridview

在DataGridView中,按SHIFT和SPACE将默认选择整行.我发现的唯一解决方案(在vb.net上引用DataGridView - 用键入的字符替换快捷键)是关闭行选择功能.虽然这有效,但它并不理想,因为我仍然希望能够使用行选择器选择整行(例如,删除行),并将SelectionMode属性更改为除了RowHeaderSelect失去该功能之外的任何其他内容.有没有办法陷阱SHIFT + SPACE组合并用简单的SPACE替换它?似乎没有一个关键事件甚至在控件的MutiSelect属性设置为True并且SelectionMode属性设置为时识别键击RowHeaderSelect,所以我不能使用它们.

ETA:我想可能会关闭MultiSelect并将选择模式更改为CellSelect,然后为事件添加事件处理程序RowHeaderMouseClick将起作用... nope.

Çöđ*_*xěŕ 0

在这里,这对我来说效果很好......

Private Sub DataGridView1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
    'Lets see what keys we have down shall we?'
    If My.Computer.Keyboard.ShiftKeyDown And e.KeyCode = Keys.Space Then
        DataGridView1.CurrentCell.Selected = False
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

这是另一种方法..

Private Sub DataGridView1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
    'Lets see what keys we have down shall we?'
    If My.Computer.Keyboard.ShiftKeyDown And e.KeyCode = Keys.Space Then
        'SendKeys.Send(Keys.Space)
        DataGridView1.CurrentCell.Selected = False
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

只是尝试一下,我希望对您有用?