Entwickler-Ecke

C# - Die Sprache - Tastaturabfrage


Daffke - Fr 29.06.07 17:55
Titel: Tastaturabfrage
Hallo!

Irgendwie hab' ich's nich' kapiert :-(

Wie kann ich meine richTextBox daraufhin abfragen, ob die "Enter"-Taste gedrückt wurden?

In Internet hab' ich zwar ein paar "OnKeyDown"-Beispiele gefunden, aber die funktionieren alle bei mir nich' :-(

Kann mir vielleicht jemand ein vollständiges(!) Code-Beispiel dafür nennen?

Vielen Dank!

Gruß,
Daffke


Christian S. - Fr 29.06.07 18:11

Vollständiger Code birgt immer die Gefahr, dass man den übernimmt ohne zu lernen.

Das KeyPress-Ereignis bekommt als Parameter mit Namen e Daten vom Typ KeyPressEventArgs. Diese Daten enthalten die Information, welche Taste gedrückt wurde: e.KeyChar. Das musst Du vergleichen mit der Return-Taste, diese bekommst Du am einfachsetn so: (Char)Keys.Return.

Ist der Vergleich wahr, führst Du den entsprechenden Code aus.

Grüße
Christian

P.S.: Dein Titel ist nicht wirklich aussagekräftig.


Daffke - Fr 29.06.07 18:19

Hi Christian!

Vielen Dank für die schnelle Antwort.
Das mit dem KeyPress-Ereignis hab' ich auch schon probiert. Aber leider reagiert das Programm nicht darauf. Es bewegt sich nach "Enter"-drücken "nich' die Bohne"! :-(

Es mag ja sein, dass man nix lernt, wenn man den Code einfach übernimmt. Aber Ihr habt mir in diesem Forum schon weitergeholfen und Eure Tipps waren oftmals auch sehr hilf- und lehrreich.
Denn: Nur, wenn der eigegebene Code auch funktioniert, begreift man die Zusammenhänge!

Gruß,
Daffke


Christian S. - Fr 29.06.07 18:22

Ich habe es gerade ausprobiert. Mit dem, was ich oben beschrieben habe, funktioniert es bei mir. Zeig am besten Mal den Code, der bei Dir nicht funktioniert.


Daffke - Fr 29.06.07 18:54

Also, der Code lautet:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (e.KeyChar == (Char)Keys.Return)
            {
                MessageBox.Show("Enter!");
            }
            base.OnKeyPress(e);
        }


:-(

Muss doch eigentlich geh'n, oder?
Geht aber nich' ...

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt


Christian S. - Fr 29.06.07 19:02

Nein, das passt nicht.

Was Du da gemacht hast, ist, die OnKeyPress-Methode der Form zu überschreiben, das hat nix mit dem RichEdit zu tun (es sei denn, Du hast vom RichEdit eine eigene Klasse abgeleitet, aber da gehe ich mal nicht von aus).

Du brauchst doch nur das Ereignis benutzen, welches das RichEdit schon zur Verfügung stellt! Einfach im Formdesigner die Eigenschaften / Ereignisse des RichEdit anzeigen und für das Richtige per Doppelklick den Event-Handler anlegen lassen. Und in dem macht sich Deine if-Abfrage dann sehr gut ;)


Daffke - Fr 29.06.07 19:12

Hi Christian!

Suuuuper! Danke! :-) :-) *freu*
Es geht jetzt einwandfrei.

Tja, als Anfänger übersieht man schon mal die Möglichkeiten, die das SDK bietet.

Dass es eine Liste "Ereignisse" gibt is' mir tatsächlich noch nie aufgefallen. Es is' halt nich' so einfach, wenn man sich alles selbst beibringen muss :-(

Danke nochmals für die einfache Erklärung! :-)

Viele Grüße,
Daffke