| |

Allgemeine DiskussionenRe: Auf Tasten reagieren | |  | Autor: BKC | Datum: 25.05.02 11:19 |
| Hallo Andy!
Ich habe dir da mal was kopiert:
Treten auf, wenn der Benutzer eine Taste drückt (KeyDown) oder losläßt (KeyUp), während ein Objekt denFokus hat. (Zum Interpretieren vonANSI-Zeichen verwenden Sie das KeyPress-Ereignis.)
Syntax
Private Sub Form_KeyDown(keycode As Integer, shift As Integer)
Private Sub Objekt_KeyDown([index As Integer,]keycode As Integer, shift As Integer)
Private Sub Form_KeyUp(keycode As Integer, shift As Integer)
Private Sub Objekt_KeyUp([index As Integer,]keycode As Integer, shift As Integer)
Die Syntax für die Ereignisse KeyDown und KeyUp besteht aus den folgenden Teilen:
Teil Beschreibung
Objekt EinObjektausdruck, der ein Objekt in der Liste unter Betrifft ergibt.
index Eine Ganzzahl, die ein Steuerelement eindeutig kennzeichnet, wenn es sich in einemSteuerelementefeld befindet.
keycode Ein Tasten-Code wie vbKeyF1 (die F1-TASTE) oder vbKeyHome (die POS1-TASTE). Zum Angeben von Tasten-Codes verwenden Sie die Konstanten aus der Visual Basic-Objektbibliothek (VB) imObjektkatalog.
shift Eine Ganzzahl, die dem Zustand der Tasten UMSCHALT, STRG und ALT zu dem Zeitpunkt entspricht, an dem das Ereignis aufgetreten ist. Das Argument shift ist ein Bitfeld, bei dem die niederstwertigen Bits der UMSCHALT-TASTE (Bit 0), der STRG-TASTE (Bit 1) und der ALT-TASTE (Bit 2) entsprechen. Diese Bits entsprechen jeweils dem Wert 1, 2 und 4. Einige, alle oder keine dieser Bits können gesetzt werden, um anzuzeigen, daß einige, alle oder keine der Tasten gedrückt sind. Wenn zum Beispiel sowohl STRG als auch ALT gedrückt werden, hat shift den Wert 6.
Anmerkungen
Bei beiden Ereignissen erhält das Objekt mit dem Fokus alle Tastenanschläge. Ein Formular kann den Fokus nur haben, wenn es keine sichtbaren und aktivierten Steuerelemente enthält. Auch wenn die Ereignisse KeyDown und KeyUp für die meisten Tasten verwendet werden können, werden Sie am häufigsten für die folgenden Tasten verwendet:
Tasten, die als Erweiterung zu den normalen Buchstaben verwendet werden, wie dieFunktionstasten.
Pfeiltasten.
Kombinationen von Tasten und Standard-Zustandstasten.
Zum Unterscheiden zwischen dem numerischen Ziffernblock und den normalen Zifferntasten.
Verwenden Sie die KeyDown- und KeyUp-Ereignisprozeduren, wenn Sie sowohl auf das Drücken als auch auf das Loslassen einer Taste reagieren müssen.
KeyDown und KeyUp werden in den folgenden Situationen nicht ausgelöst:
Beim Drücken der EINGABETASTE, wenn das Formular ein Befehlsschaltfläche-Steuerelement (CommandButton) enthält, dessen Default-Eigenschaft den Wert True hat.
Beim Drücken der ESC-TASTE, wenn das Formular ein Befehlsschaltfläche-Steuerelement enthält, dessen Cancel-Eigenschaft den Wert True hat.
Beim Drücken der TAB-TASTE.
KeyDown und KeyUp interpretieren, ob ein Buchstabe ein Groß- oder ein Kleinbuchstabe ist, durch Verwendung von zwei Argumenten: keycode zeigt die physische Taste an (und gibt daher für A und a dieselbe Taste zurück) und shift gibt den Zustand von UMSCHALT+Taste an und gibt daher entweder A oder a zurück.
Wenn Sie das Argument shift überprüfen müssen, können Sie die shift-Konstanten, die die Bits innerhalb des Arguments definieren, verwenden. Die Konstanten haben die folgenden Werte:
Konstante Wert Beschreibung
vbShiftMask 1 Bitmaske für UMSCHALTTASTE.
vbCtrlMask 2 Bitmaske für STRG-TASTE.
vbAltMask 4 Bitmaske für ALT-TASTE.
Diese Konstanten stellenBitmasken dar, die Sie verwenden können, um eine beliebige Kombination von Tasten zu überprüfen.
Sie überprüfen eine Bedingung, indem Sie zuerst jedes Ergebnis einer temporären Variablen vom Typ Integer zuweisen und dann shift mit einer Bitmaske vergleichen. Verwenden Sie den And-Operator mit dem Argument shift, um zu überprüfen, ob die Bedingung größer als 0 ist, wodurch angezeigt wird, daß die jeweilige Zustandstaste gedrückt wurde. Beispiel:
ShiftDown = (Shift And vbShiftMask) > 0
In einer Prozedur können Sie eine beliebige Kombination von Bedingungen überprüfen, wie dieses Beispiel zeigt:
If ShiftDown And CtrlDown Then
Hinweis Wenn die KeyPreview-Eigenschaft den Wert True hat, erhält ein Formular diese Ereignisse, bevor Steuerelemente in dem Formular die Ereignisse erhalten. Verwenden Sie die KeyPreview-Eigenschaft, um globale Routinen zur Verarbeitung von Tastatureingaben zu schreiben.
KeyPress-Ereignis
Tritt auf, wenn der Benutzer eineANSI-Taste drückt und losläßt.
Syntax
Private Sub Form_KeyPress(keyascii As Integer)
Private Sub Objekt_KeyPress([index As Integer,]keyascii As Integer)
Die Syntax des KeyPress-Ereignisses besteht aus folgenden Teilen:
Teil Beschreibung
Objekt EinObjektausdruck, der ein Objekt in der Liste unter Betrifft ergibt.
index Eine Ganzzahl, die ein Steuerelement eindeutig kennzeichnet, wenn es sich in einemSteuerelementefeld befindet.
keyascii Eine Ganzzahl, die den numerischen Tasten-Code einer Standard-ANSI-Taste zurückgibt. keyascii wird als Referenz übergeben. Wird das Argument geändert, wird ein anderes Zeichen an das Objekt gesendet. Das Ändern von keyascii auf 0 hebt den Tastenanschlag auf, d.h. das Objekt erhält kein Zeichen.
Anmerkungen
Das Objekt mit demFokus erhält das Ereignis. Ein Formular kann das Ereignis nur empfangen, wenn es keine sichtbaren und aktivierten Steuerelemente enthält oder wenn die KeyPreview-Eigenschaft den Wert True hat. Ein KeyPress-Ereignis kann alle darstellbaren Zeichen der Tastatur, die STRG-TASTE in Kombination mit einem Zeichen aus dem Standardalphabet oder eines von wenigen Sonderzeichen sowie die Tasten EINGABE oder RÜCKTASTE umfassen. Eine KeyPress-Ereignisprozedur ist zum Abfangen von Tastenanschlägen hilfreich, die in einem Textfeld- oder Kombinationsfeld-Steuerelement (TextBox oder ComboBox) eingegeben wurden. Sie können damit Tastenanschläge unmittelbar auf ihre Zulässigkeit überprüfen oder Zeichen formatieren, während sie eingegeben werden. Durch Ändern des Wertes von keyascii wird das angezeigte Zeichen geändert.
Sie können das Argument keyascii in ein Zeichen umwandeln, indem Sie den folgenden Ausdruck verwenden:
Chr(KeyAscii)
Anschließend können Sie Zeichenfolgenoperationen durchführen und das Zeichen mit dem folgenden Ausdruck wieder in eine von dem Steuerelement interpretierbare ANSI-Zahl zurückübersetzen:
KeyAscii = Asc(char)
Mit KeyDown- und KeyUp-Ereignisprozeduren können Sie alle Tastenanschläge verarbeiten, die von KeyPress nicht erkannt werden, zum BeispielFunktionstasten,Bearbeitungstasten, Pfeiltasten und alle Kombinationen daraus mit Zustandstasten. Im Gegensatz zu den Ereignissen KeyDown und KeyUp zeigt KeyPress nicht den physischen Zustand der Tastatur an, sondern übergibt statt dessen ein Zeichen.
KeyPress interpretiert Groß- und Kleinbuchstaben mit unterschiedlichen Tasten-Codes und daher als zwei unterschiedliche Tasten. KeyDown und KeyUp interpretieren Groß- und Kleinbuchstaben mit Hilfe von zwei Argumenten: keycode zum Anzeigen der physischen Taste (d.h. A und a werden als dieselbe Taste zurückgegeben) und shift zum Anzeigen des Zustands von UMSCHALT+TASTE (d.h. entweder A oder a wird zurückgegeben).
Wenn die KeyPreview-Eigenschaft den Wert True hat, erhält ein Formular das Ereignis, bevor Steuerelemente in dem Formular das Ereignis erhalten. Verwenden Sie die KeyPreview-Eigenschaft, um globale Tastatur-Behandlungsroutinen zu schreiben.
Hinweis Die ANSI-Nummer für die Tastenkombination STRG+@ ist 0. Da Visual Basic den keyascii-Wert 0 als Null-Zeichenfolge ("") interpretiert, sollten Sie STRG+@ nicht in Ihren Anwendungen verwenden.
Ich hoffe das reicht fürs erste. Ist aus dem MSDN
Gruß BKC |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|