Solved

Disable Enter key in Datagrid

Posted on 2004-04-28
6
2,118 Views
Last Modified: 2007-12-19
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?
0
Comment
Question by:paing0d
  • 3
  • 3
6 Comments
 
LVL 2

Accepted Solution

by:
Jeffr0 earned 20 total points
ID: 10941587
Maybe a custom DataGrid will solve this:

Put this code in the same namesapce as your Form:

Public Class Jeffr0sDataGrid
    Inherits DataGrid

    Protected Overrides Function ProcessKeyPreview(ByRef m As System.Windows.Forms.Message) As Boolean
        If m.Msg = 256 Then
            Return False
        End If

        Return True
    End Function
End Class



Then change the code that instantiates the Grid like this:


        Me.DataGrid1 = New Jeffr0sDataGrid()

(The code for it is in the " Windows Form Designer generated code " area.)
0
 
LVL 2

Expert Comment

by:Jeffr0
ID: 10942191
My solution has a bonus feature in that it also ignores the arrow keys except for when you're inside the datagrid cell.  You can only use the tab key and mouse to navigate.

:)
0
 

Author Comment

by:paing0d
ID: 10943510
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.
0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 
LVL 2

Expert Comment

by:Jeffr0
ID: 10943597
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??
0
 

Author Comment

by:paing0d
ID: 10943603
This did the trick:

    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, 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.
0
 

Author Comment

by:paing0d
ID: 10943611
And if you want to filter out the arrow keys too just make it:

    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, 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
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question