vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB5, VB619.05.05
Eingabe in Textbox auf bestimmte Zeichen begrenzen

Dieser Tipp zeigt, wie man die Eingabe in einer Textbox auf bestimmte Zeichen begrenzen kann. Auch das Einfügen via Kontextmenü wird unterbunden.

Autor:   Sven EbertBewertung:     [ Jetzt bewerten ]Views:  26.771 
vb.brainshit.comSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgender Tipp zeigt, wie man die Eingabe in einer TextBox sehr einfach auf bestimmte Zeichen begrenzen kann. Ferner wird gezeigt, wie man sogar das Einfügen von Text über das Kontextmenü verhindert.

Erstellen Sie ein neues Projekt und platzieren auf die Form eine TextBox namens Text1. Fügen Sie anschließend nachfolgenden Code in den Codeteil der Form ein:

Private Sub Text1_KeyPress(KeyAscii As Integer)
  Dim Zugelassen As String
 
  ' In diesen String kommen alle Zeichen, die Sie zulassen möchten.
  ' (Bsp.: Es werden nur Zahlen, Kommas und Backspace zugelassen.)
  Zugelassen = "1234567890," & Chr$(8)
 
  ' Schaltet die Textbox frei. Es können Zeichen eingegeben werden
  Text1.Locked = False
 
  ' Es wird überprüft, ob das Zeichen, dass eingeben wurde zulässig ist
  If InStr(1, Zugelassen, Chr$(KeyAscii)) = 0 Then
    ' Falls es sich bei dem Zeichen um ein unzulässiges Zeichen
    ' handelt, wird die Eingabe durch Setzen von "KeyAscii = 0" unterbunden
    KeyAscii = 0
  End If
End Sub

Der nächste Code-Block kommt in die Prozedur "Private Sub Text1_MousDown". Dieser Teil unterbindet, dass man durch das Öffnen des Kontextmenüs mit der rechten Maustaste irgendwelche Zeichen aus der Zwischenablage einfügen kann. Es ist zwar simpel, aber (wie ich finde) clever! Oder!?

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _
  X As Single, Y As Single)
 
  ' Wenn die rechte Maustaste gedrückt wurde und das
  ' Kontextmenü geöffnet werden soll...
  If Button = 2 Then
    ' Dann wird jede Eingabe in die Textbox ausgeschlossen.
    Text1.Locked = True
  Else
    ' Bei jedem anderem Klick wird die Textbox für die
    ' Eingabe wieder freigegeben
    Text1.Locked = False
  End If
End Sub

Im Forum wurde das Öffnen des Kontextmenüs mit Hilfe von Subclassing (30 Zeilen Code), oder mit Hilfe von Sendmessage und einer Picturebox gelöst (15 Zeilen Code).
Ich finde diese Lösung sehr viel einfacher.
 

Dieser Tipp wurde bereits 26.771 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel