paing0d
asked on
Disable Enter key in Datagrid
I have a Datagrid with custom columns. These columns contain textboxes but also comboboxes and checkboxes. Now when a user presses the enter button when editing the values in a textfield column then a Datagrid event will be fired. This is something I totally not want. Is there a way to ignore the Enter key in a Datagrid? If I press enter in a textboxfield then the next row will be selected. I tried to catch the Enter key in the textboxes but it seems like they are overruled by this Datagrid event. Any idea to fix this problem?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
If I press enter the first time in my self made textfield column it does jump to the next row. If I keep pressing enter it stays there but does not go further. So I think it works after a key is pressed the first time? On every row it jumps to the next row when pressed the enter key (in the custom textfield column) but goes no further.
If I press other keys then Enter it blocks them too. I can't typ in my own made textfield columns anymore.
If I press other keys then Enter it blocks them too. I can't typ in my own made textfield columns anymore.
Oh well. That's the best I can do for a 20 point question. :)
It works pretty good when you don't have any custom columns, though, doesn't it??
It works pretty good when you don't have any custom columns, though, doesn't it??
ASKER
This did the trick:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Messa ge, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If (msg.WParam.ToInt32 = 13) Then
Return True
End If
Return False
End Function
Thanks for guiding me in the right direction.
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Messa
If (msg.WParam.ToInt32 = 13) Then
Return True
End If
Return False
End Function
Thanks for guiding me in the right direction.
ASKER
And if you want to filter out the arrow keys too just make it:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Messa ge, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case msg.WParam.ToInt32
Case 13, 37, 38, 39, 40
Return True
End Select
Return False
End Function
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Messa
Select Case msg.WParam.ToInt32
Case 13, 37, 38, 39, 40
Return True
End Select
Return False
End Function
:)