VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
(login to hide)
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

Tips en tricks
U bevindt zich > Tips en Tricks > VB .net > Componenten > TextBox > ENTER-toets in plaats van de TAB-toets. [VB2003][VB2005]
Ik wil een tip ingeven

Tip: ENTER-toets in plaats van de TAB-toets. [VB2003][VB2005]
Ronneke - 22 Oct 2006 - 01:19

Om van een textbox naar de volgende te gaan, wordt in de meeste gevallen gebruik gemaakt van de TAB-toets. Echter is het soms aangenamer of vlotter te werken door de ENTER-toets te gebruiken.

Deze methode kan nog verder uitgebreid worden om de op- en neerwaartse pijlen te onderscheppen.

Let op: Deze coden werken enkel alleen indien de eigenschap AcceptButton = (none), zoniet wordt de routine OnKeyUp nooit aangesproken.

Bij het formulier waar uw textboxen aanwezig zijn, plaatst je de eigenschap KeyPreview = True
Nu zijn er twee mogelijke toestanden:
Code:


1) Op uw formulier zijn er enkel textboxen aanwezig waarbij de eigenschap MultiLine = False is.


  Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs)

    If e.KeyCode = Keys.Enter Then
      e.Handled = True
      Me.ProcessTabKey(Not e.Shift)
    Else
      e.Handled = False
      MyBase.OnKeyUp(e)
    End If

  End Sub


2) Op uw formulier bevinden zich ook textbosen waarbij cde eigenschape MultiLine = True en AcceptsReturn = True. Hier moeten we dus een aanpassing in onze routine aanbrengen, zoniet wordt de ENTER-toets niet meer aanvaard om een nieuwe lijn te starten. Uiteraard kan men dan maar deze textboxen verlaten via de TAB-toets.


  Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs)

    If e.KeyCode = Keys.Enter Then
      If TypeOf Me.ActiveControl Is TextBox Then
        Dim txtBox As TextBox = DirectCast(Me.ActiveControl, TextBox)

        If txtBox.Multiline AndAlso txtBox.AcceptsReturn Then
          e.Handled = False
          MyBase.OnKeyUp(e)
          Exit Sub
        End If
      End If

      e.Handled = True
      Me.ProcessTabKey(Not e.Shift)
    Else
      e.Handled = False
      MyBase.OnKeyUp(e)
    End If

  End Sub


Om nu van de vervevelende BEEP verlost te zijn, wat eigenlijk duidt op een foutieve invoering, plaatst ge de volgende code bij het KeyPress-event van uw object, bijv.


  Private Sub txtBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBox1.KeyPress

    If e.KeyChar = Convert.ToChar(Keys.Enter) Then
      e.Handled = True
    End If

  End Sub

3099 x gelezen

Commentaar
U dient ingelogd te zijn om commentaar te posten.
 

Er zijn in totaal 102 tips gepost.

 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php