How to Capture Enter Key or Return Key as Tab in Windows Form

Submitted by: 
Visitors have accessed this post 16862 times.

By default VB.NET and C# does not listen on the enter key or return key when you press your keyboard. Those it will not move your cursor to the next control like text box. Instead a tab key is used to navigate to other control in your windows form.

A simple ProcessCmdKey Overrides function is necessary to capture this event. Allowing you to use the Tab key as the enter/return key equivalent.

Here’s the code:

  1. Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
  2. Select Case msg.WParam.ToInt32()
  3. Case 13 ' enter Key
  4. If TypeOf Me.ActiveControl Is TextBox Then
  5. SendKeys.Send("{Tab}")
  6. Return True
  7. End If
  8. End Select
  9. Return MyBase.ProcessCmdKey(msg, keyData)
  10. End Function 'ProcessCmdKey

The code above also work on VB.NET 2008.

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.


1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.



Sendkeys.send is less reliable
I would prefer

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • You may insert videos with [video:URL]
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <th> <img> <h1> <h2> <h3> <iframe> [video]
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <asp>, <c>, <cpp>, <csharp>, <css>, <html4strict>, <java>, <javascript>, <mysql>, <php>, <python>, <sql>, <vb>, <vbnet>. The supported tag styles are: <foo>, [foo].
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.