myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- GUI: WPF und Silverlight (https://www.mycsharp.de/wbb2/board.php?boardid=85)
--- Textbox nach Auswahl automatisch in Fokus setzen (https://www.mycsharp.de/wbb2/thread.php?threadid=121798)


Geschrieben von Aeternius am 19.04.2019 um 14:52:
  Textbox nach Auswahl automatisch in Fokus setzen
Hallo zusammen, ich hoffe ich bin hier richtig...

Ich habe mir ein kleines Programm geschrieben das mir 5 Textboxen als String in eine Datei schreibt.

Ebenfalls habe ich es geschafft, dass der Inhalt der Textboxen bei Mausklick sowie TAB-Sprung markiert wird.

Woran ich gerade verzweifele ist, dass nach drücken der ENTER-Taste zwar alles korrekt geschrieben wird, der Text in der aktuellen Textbox jedoch nicht automatisch markiert wird. Man kann also nicht direkt weiterschreiben sondern muss erst den aktuellen Inhalt manuell löschen...

Unter Windows Forms klappte das alles, unter WPF verzweifel ich gerade...

Hat jemand ne Idee wie ich das hinbekomme?

PS: Ich bin kein Informatiker, ich mach das nur Hobby-Mäßig... großes Grinsen

Grüße, Stefan


Geschrieben von Papst am 19.04.2019 um 17:59:
 
Wie hast du es denn bis jetzt probiert?

Für WPF empfiehlt sich das MVVM Entwurfsmuster (  [Artikel] MVVM und DataBinding ). Da würde dein Szenario ungefähr wie folgt aussehen:

im ViewModel werden deine 5 Textboxen durch String Properties repräsentiert. Der Enter Button wird als ICommand Implementierung getriggert und übergibt die 5 Strings an einen Service um sie dann wieder zu leeren.
Den Rest mach Datenbindung.


Geschrieben von Aeternius am 19.04.2019 um 21:16:
 
Hallo Papst, Danke für deine schnelle Antwort am Feiertag.

Bislang sind die Events per Eventhandler realisiert. (PreviewMouseLeftButtonDownEvent, GotKeyboardFocusEvent und MouseDoubleClickEvent)

Der Eingabe Button ist schlicht auf default gesetzt, so dass ENTER ihn automatisch triggert.

Es klappt auch alles wunderbar, nur dass nach der Eingabe der Cursor eben hinter der Eingabe stehen bleibt anstatt den Text zu markieren.

Hintergrund: Es ist ein kleines Bestellprogramm. Und wenn mehrere Ersatzteilnummern eingegeben werden ist es effizienter ENTER zu drücken und danach direkt weiterzuschreiben...

Grüße, Stefan

edit: Die Textfelder sollen nicht geleert werden, da die 4 anderen Textfelder die Eingaben behalten sollen.

Edit v2.0: Habs hinbekommen. Hab schlicht und einfach einen GetFocus auf textBox1 gelegt, der bei Betätigung des Eingabe-Buttons getriggert wird. Nicht elegant, aber ausreichend


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.07.2019 14:33