Das Drücken von Tasten auf der Tastatur ist eine der wichtigsten Möglichkeiten, wie ein Benutzer mit einer Anwendung interagieren kann. Es gibt mehrere Ansätze für die Behandlung solcher Ereignisse in Windows Forms. Eine der gängigsten Methoden besteht darin, zu überprüfen, ob eine bestimmte Taste gedrückt wird. In diesem Artikel werden wir uns eine detaillierte Anleitung zur Vorgehensweise ansehen.
Zunächst müssen Sie einem Formular oder einem bestimmten Steuerelement einen KeyDown-Ereignishandler hinzufügen. Dies kann im Formular-Designer oder über das Eigenschaftenfenster des Steuerelements im Entwurfsmodus erfolgen. Im Handler überprüfen wir den Code der Taste, auf die der Benutzer geklickt hat.
private void Form1_KeyDown(object sender, KeyEventArgs e)
if (e.KeyCode == Keys.Enter)
// ihr Eingabetaste-Bearbeitungscode
Wie Sie im Beispiel sehen können, haben wir die keyCode-Eigenschaft des KeyEventArgs-Objekts verwendet, um eine Taste zu überprüfen. Diese Eigenschaft enthält eine Keys-Enumeration, in der alle Tasten der Tastatur definiert sind. In diesem Fall überprüfen wir, ob der Benutzer die Eingabetaste gedrückt hat. Wenn diese Bedingung erfüllt ist, wird der Code innerhalb des Bedingungsblocks ausgeführt.
Neben der keyCode-Eigenschaft sind auch die KeyData- und KeyValue-Eigenschaften verfügbar. Die KeyData-Eigenschaft stellt Informationen über die gedrückte Taste in Form einer Kombination von Flags bereit, z. B. über das mögliche Drücken einer Taste mit einem Strg-Modifikator. Die KeyValue-Eigenschaft gibt den Wert einer Taste im ganzzahligen Format zurück.
Wenn Sie also den Code oder den Wert einer Taste kennen, können Sie feststellen, welche Taste der Benutzer gedrückt hat. Mithilfe dieser Informationen können Sie verschiedene Benutzerinteraktionsszenarien in Ihrer Windows Forms-Anwendung implementieren.
So bestimmen Sie die gedrückte Taste in Formularfenstern: Schritt für Schritt Anleitung
- Öffnen Sie das Windows Forms-Projekt in der Visual Studio-Entwicklungsumgebung.
- Gehen Sie zum Formdesigner und klicken Sie mit der rechten Maustaste auf das Formular. Wählen Sie den Menüpunkt "Eigenschaften".
- Suchen Sie im Eigenschaftenfenster nach der Eigenschaft "KeyPreview". Legen Sie den Wert auf "True" fest.
- Fügen Sie dem Formular einen "KeyDown" -Ereignishandler hinzu. Kehren Sie zum Formulardesigner zurück, indem Sie auf das Formular klicken und dann darauf doppelklicken, um einen Ereignishandler zu erstellen.
- Navigieren Sie zur Ereignishandlermethode "KeyDown" in der Codedatei des Formulars.
- Verwenden Sie den Ereignisparameter "e", um Informationen über die gedrückte Taste abzurufen. Sie können den Code einer gedrückten Taste mit der Eigenschaft "keyCode" des Objekts "e" abrufen.
- Fügen Sie Code hinzu, um Tastenanschläge auszuführen.
Wenn Sie diese Schritte befolgen, können Sie die gedrückte Taste in den Formularfenstern definieren. Vergessen Sie nicht, dass diese Anweisung für Windows Forms-Projekte in Visual Studio funktioniert.
Schritt 1: Erstellen eines Formulars und Festlegen von Eigenschaften
1. Öffnen Sie Visual Studio, und erstellen Sie ein neues Windows Forms-Projekt.
2. Das Standardformular, das beim Erstellen des Projekts geöffnet wird, enthält ein Steuerelement mit dem Namen "form1".
3. Legen Sie die erforderlichen Formulareigenschaften fest:
- Text: Geben Sie den Namen des Formulars an, z. B. "Tastatureingabeüberprüfung".
- KeyPreview: Legen Sie den Wert auf true fest, damit das Formular Tastatureingabeereignisse verarbeiten kann.
4. Als nächstes fügen Sie dem Formular ein Textfeld-Steuerelement hinzu, um Informationen über die gedrückte Taste anzuzeigen.
5. Legen Sie die Multiline-Eigenschaft des TextBox-Elements auf true fest, damit mehrere Textzeilen angezeigt werden können.
6. Legen Sie die ReadOnly-Eigenschaft des TextBox-Elements auf true fest, damit der Benutzer den im Feld angezeigten Text nicht bearbeiten kann.
Sie haben jetzt ein Formular erstellt und die erforderlichen Eigenschaften für die Überprüfung des Tastenanschlags in Windows Forms konfiguriert.
Schritt 2: Hinzufügen eines KeyDown-Ereignishandlers
Um zu überprüfen, welche Taste bei der Arbeit mit Windows Forms gedrückt wird, müssen Sie einen KeyDown-Ereignishandler hinzufügen. Dieses Ereignis tritt auf, wenn der Benutzer eine Taste auf der Tastatur drückt.
Im Folgenden finden Sie den Code, den Sie der Formularinitialisierungsmethode hinzufügen müssen (z. B. im Konstruktor der Formularklasse):
| this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); |
In diesem Code abonnieren wir das KeyDown-Ereignis, indem wir eine Methode angeben, die dieses Ereignis behandelt.
Als nächstes erstellen Sie eine Form1_KeyDown-Methode, die den Tastenanschlag behandelt. Hier ist ein Codebeispiel für diese Methode:
private void Form1_KeyDown(object sender, KeyEventArgs e) < if (e.KeyCode == Keys.Enter) < // код для выполнения действий при нажатии клавиши Enter >else if (e.KeyCode == Keys.Escape) < // код для выполнения действий при нажатии клавиши Escape >// fügen Sie die Verarbeitung anderer Tasten analog hinzu >
Bei dieser Methode überprüfen wir mithilfe der keyCode-Eigenschaft des KeyEventArgs-Objekts, welche Taste gedrückt wird. Im Beispiel werden die Tasten Enter und Escape überprüft, Sie können jedoch die Behandlung anderer Tasten analog hinzufügen.
Nachdem Sie einen KeyDown-Ereignishandler und die Form1_KeyDown-Methode hinzugefügt haben, ist Ihr Programm bereit, den Tastendruck zu überprüfen und entsprechende Aktionen auszuführen.
Schritt 3: Identifizieren des Codes der gedrückten Taste
Sie müssen das KeyDown- oder KeyPress-Ereignis verwenden, um den Code einer gedrückten Taste in Windows Forms zu ermitteln. Beide Ereignisse werden jedes Mal ausgelöst, wenn der Benutzer eine Taste auf der Tastatur drückt.
Das KeyDown-Ereignis wird für jede Taste ausgelöst, einschließlich Sondertasten wie die Eingabetaste oder die Pfeiltasten. Sie müssen die e.keyCode-Eigenschaft verwenden, um den Code der gedrückten Taste zu bestimmen. Hier ist ein Beispiel für einen KeyDown-Ereignishandler :
private void Form1_KeyDown(object sender, KeyEventArgs e)else if (e.KeyCode == Keys.Escape)/ Код, который выполнится при нажатии клавиши Escape>else/ Код, который выполнится при нажатии других клавиш>>
Das KeyPress-Ereignis wird nur für Symboltasten ausgelöst. Dies bedeutet, dass für spezielle Tasten wie die Eingabetasten oder die Pfeiltasten dieses Ereignis nicht ausgelöst wird. Sie müssen die e.KeyChar-Eigenschaft verwenden, um die gedrückte Zeichentaste zu bestimmen. Hier ist ein Beispiel für einen KeyPress-Ereignishandler :
private void Form1_KeyPress(object sender, KeyPressEventArgs e)else if (e.KeyChar == 'B')/ Код, который выполнится при нажатии клавиши B>else/ Код, который выполнится при нажатии других символьных клавиш>>
Sowohl der KeyDown- als auch der KeyPress-Ereignishandler müssen die entsprechenden Ereignisse im Formular abonniert haben. Dazu können Sie den Formulardesigner oder die Events-Eigenschaft im Formulardesigner verwenden.
Schritt 4: Umgang mit bestimmten Tasten
Nachdem Sie ein Tastendruckereignis definiert haben, können Sie die Verarbeitung bestimmter Tasten hinzufügen. Dazu müssen Sie im KeyDown-Ereignishandler bedingte Anweisungen verwenden, um zu bestimmen, welche Taste gedrückt wurde.
Jede Taste auf der Tastatur wird durch einen Code dargestellt, der als keyCode bezeichnet wird. Sie können die KeyEventArgs-Eigenschaft verwenden, um zu bestimmen, welcher Code mit einer Taste übereinstimmt.KeyCode.
Im Folgenden finden Sie ein Beispiel für die Behandlung eines Eingabetaste-Drückens:
private void Form1_KeyDown(object sender, KeyEventArgs e)>
In diesem Beispiel wird der Code ausgeführt, der sich innerhalb der bedingten if-Anweisung befindet, wenn Sie die Eingabetaste drücken. Sie können jeden Code hinzufügen, den Sie ausführen müssen, wenn Sie genau diese Taste drücken.
Mit einem ähnlichen Ansatz können Sie verschiedene Tastenanschläge in Ihrer Anwendung verarbeiten. Sie können beispielsweise die Escape-Taste zum Schließen eines Formulars oder die Entf-Taste zum Löschen eines ausgewählten Elements hinzufügen. In jedem Fall genügt es, dem KeyDown-Ereignishandler entsprechende bedingte Anweisungen hinzuzufügen.
Schritt 5: Anwenden der erhaltenen Informationen
Nachdem wir die Informationen über die gedrückte Taste erhalten haben, können wir mit der Anwendung dieser Informationen in unserem Programm beginnen.
Ein Beispiel für eine solche Anwendung kann die Verarbeitung bestimmter Aktionen sein, abhängig von der gedrückten Taste. Wenn Sie zum Beispiel die Eingabetaste drücken, können wir eine Aktion ausführen, z. B. die vom Benutzer eingegebenen Daten verarbeiten.
Dazu können wir ein bedingtes Konstrukt verwenden, z. B. eine if- Anweisung. Innerhalb dieses Designs überprüfen wir, welche Taste genau gedrückt wurde, und führen die entsprechende Aktion aus.
private void Form1_KeyDown(object sender, KeyEventArgs e)else if (e.KeyCode == Keys.Escape)/ выполнить действие по нажатию клавиши "Escape">else if (e.KeyCode == Keys.Delete)/ выполнить действие по нажатию клавиши "Delete">// . >
In diesem Beispiel überprüfen wir die gedrückte Taste mithilfe der keyCode-Eigenschaft des KeyEventArgs-Objekts. Wenn die gedrückte Taste mit der gewünschten Taste übereinstimmt, führen wir die entsprechende Aktion aus.
Auf diese Weise können wir durch die Verwendung der erhaltenen Informationen über die gedrückte Taste auf Benutzeraktionen reagieren und diese in unserem Programm verarbeiten.