C# Makierung von Buttons entfernen

Eragon333

Lt. Junior Grade
Registriert
Juni 2012
Beiträge
362
Hallo!

Mein Taschenrechner der nur über Buttons gesteuert wird läuft soweit.

Nun habe ich noch noch Tastaturunterstützung eingefügt und zwar nach diesem Tutorial: http://www.youtube.com/watch?v=IXGM-EbboRI

Ich habe aber ein großes Problem. Ich kann nur solange mit der Tastatur rechnen bis ich mit der Maus auf einen Button klicke.

Dann ist der Button markiert und ich muss das Programm immer neustarten. Wenn nämlich ein Button markiert ist und ich Enter drücke für der Befehl enter immer den Markierten Button aus nicht aber das Ergebnis ausrechnen.

Wie stelle ich ein das nach dem Klick auf einen Button dieser nicht markiert bleibt??

Danke im vorraus!
 
Zuletzt bearbeitet:
Probier mal im Event Handler vom Button "Form1.Focus()" aufzurufen.
Soweit ich mich erinnere kann man Key Events von Controls an die darunterliegende Form weiterleiten. Kann mich aber gerade nicht erinnern wie das nochmal ging.

Edit: ..Gast hat recht. this.Focus() ist sogar noch etwas besser. Dann braucht man den Namen der Form nicht.
 
Zuletzt bearbeitet:
In deinem KeyDown Ereignis als allerletztes den Fokus wieder auf das Form setzen.

... also einfach am Ende der Form_KeyDown(..) ein this.Focus(); anhängen, damit der Fokus wieder im Form landet und dieses die Tastenereignisse verarbeiten kann.
 
Das klappt irgendwie nicht. Es wird zwar kein Fehler angezeigt aber die "Enter" Taste führt immer noch das zuletzt angeklickte aus :O
 
Such' mal nach Preview Events. Diese musst du entsprechend behandeln und diese dann ggf. auf "handled" setzen.
 
Ich kopier mal den Post von YaPh1l (YouTube Kommentar) hier her, der sollte alles erklären:

Ein kleiner Tipp: Man muss nicht darauf achten, dass kein Steuerelemnt den Fokus hat. Es reicht, das Property KeyPreview der Form auf true zu setzen, dann geht jeder Tastendruck erst an die Form und dann erst ans fokussierte Steuerelement. Man muss aber dann das Event bei Bedarf canceln, da sonst (wenn die TextBox fokussiert ist) die Zahl zwei mal in der TextBox steht. Wenn du möchtest, kann ich ein Beispielprojekt hochladen oder auch ein Video machen.

Viele Grüße, Phil.

Und hier noch die Antwort vom Video Uploader:

Hallo Phil!

Danke für deine Antwort!

Den Fokus habe ich gesetzt indem ich in den Eigenschaften TabStopp auf False setze.

Es gibt immer verschiedene Möglichkeiten! Klar darfst du machen was du willst! Kannst dich gerne auch mal privat melden!

Das Projekt habe ich recht flüchtig gemacht inkl. Tutorial! :-)

Danke für dein Feedback
 
Zurück
Oben