vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Maus & Tastatur · Tastatursteuerung   |   VB-Versionen: VB4, VB5, VB603.06.04
Tasten global für eine Form sperren

Bestimmte Zeichen lassen sich auf sehr einfache Weise global für die gesamte Form sperren. Wie? Das erfahren Sie hier.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  13.536 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nehmen wir an, Sie haben eine Form mit vielen Eingabefeldern (TextBox-Controls, ComboBox-Controls, etc.) erstellt. Deren Inhalte sollen in einer Datenbank gespeichert werden. Die Eingabe von Hochkomma und Sternchen (Asterix) möchten Sie jedoch unterbinden, um Syntax-Fehler bei SQL-Abfragen vorzubeugen. Das Sperren von bestimmten Zeichen selbst, lässt sich wie folgt realisieren:

Private Text1_KeyPress(KeyAscii As Integer)
  If Chr$(KeyAscii) = "'" Or Chr$(KeyAscii) = "*" Then
    KeyAscii = 0
  End If
End Sub
 
Private Sub Combo1_KeyPress(KeyAscii As Integer)
  If Chr$(KeyAscii) = "'" Or Chr$(KeyAscii) = "*" Then
    KeyAscii = 0
  End If
End Sub

Diesen Code müsste man nun in das KeyPress-Ereignis aller Eingabe-Controls auf der Form einfügen, was nicht nur den Quellcode der Form aufbläht, sondern auch richtig Arbeit bedeutet. Platziert man bswp. nachträglich eine neue TextBox auf die Form, muss man daran denken, den Code auch hier wieder in das KeyPress-Ereignis einzufügen.

Es geht aber auch anders! Und zudem eleganter!

Wenn man die KeyPreview-Eigenschaft der Form auf True festlegt, wird zunächst immer erst die Form über neue "Tastenanschläge" benachrichtigt. Auf diese Weise lassen sich bestimmte Tasten gezielt abfragen und sperren:

Private Sub Form_Load()
  ' Wichtig, damit die Form als Erstes über 
  ' Tastatur-Ereignisse benachrichtigt wird!
  Me.KeyPreview = True
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
  ' Nicht zulässige Zeichen
  Const sChars = "'*?"
 
  ' Wurde ein unzulässiges Zeichen eingegeben?
  If InStr(sChars, Chr$(KeyAscii)) > 0 Then
    ' Zeichen sperren
    KeyAscii = 0
  End If
End Sub

Dieser Tipp wurde bereits 13.536 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