Results 1 to 3 of 3

Thread: [2008] Detect tab?

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Dec 2001
    Posts
    134

    [2008] Detect tab?

    Hi all,

    I want to detect when the user press tab in a textbox, instead of moving to the next control

    I also want to be able to know when the user press tab and when the computer sendkeys tab

  2. #2
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: [2008] Detect tab?

    AFAIK, there is no real way to tell if the textbox is receiving a physical tab keypress or is receiving a sendkeys tab keypress.

    Why do you need to know the difference?
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  3. #3
    Super Moderator jmcilhinney's Avatar
    Join Date
    May 2005
    Location
    Sydney, Australia
    Posts
    111,221

    Re: [2008] Detect tab?

    You would need to inherit the TextBox class and override the ProcessCmdKey method to filter out the Tab key:
    vb.net Code:
    1. Public Class TextBoxEx
    2.     Inherits TextBox
    3.  
    4.     Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, _
    5.                                                ByVal keyData As System.Windows.Forms.Keys) As Boolean
    6.         Return (keyData And Keys.Tab) = Keys.Tab OrElse _
    7.                MyBase.ProcessCmdKey(msg, keyData)
    8.     End Function
    9.  
    10. End Class
    As far as the control is concerned there is no difference. It gets the same message from Windows either way.
    Why is my data not saved to my database? | MSDN Data Walkthroughs
    VBForums Database Development FAQ
    My CodeBank Submissions: VB | C#
    My Blog: Data Among Multiple Forms (3 parts)
    Beginner Tutorials: VB | C# | SQL

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width