Benutzer mit den meisten Antworten
Aufruf eines UserControls und setzen des Focus in eine TextBox

Frage
-
Hallo!
ich rufe UserControls auf,
uc = new UcCreateKitplate(this); scrKitplate.Content = uc;
in diesen UserControls befinden sich TextBoxen.
<TextBox Grid.Row="1" Grid.Column="2" Name="tboLength" TextChanged="tbo_TextChanged" />
Per C# setzte ich den Fokus auf eine der TextBoxen.
tbo.Focus(); tbo.Select(tbo.Text.Length, 0);
(Per Breakpoint habe ich kontrolliert, dass dieser Code auch wirklich aufgerufen wird.)
Aber was passiert ist:
In der Textbox steht rechts von den vorgegebenen Zeichen der Senkrechte Strich des Cursors, blinkt aber nicht. Wenn ich per Tastatur eine Eingabe ausführen will, passiert nichts. Der Fokus befindet sich nicht in der Textbox (zumindest nicht so, wie ich es kenne).
Wenn ich einmal(!) die Tabtaste betätige, so ist der Fokus dann wirklich in der TextBox.Was ist da los? Kann mir das jemand sagen? Wie muss ich den Fokus setzen, damit man direkt nach dem Öffnen (Anzeigen) des UserControls per Tastatur Eingaben in die TextBox machen kann?
Antworten
-
Hi Frank,
ich hab es jetzt bei mir ausprobiert und es Funktioniert ohne Probleme.
Wobei meine Textbox (Laut MSDM die standart Textbox) keine eigenschaft Content hat.
Setzt du vielicht noch an einer anderen Stelle den Focus. Z.B. im Übergerordneten Controll (einfach mal nach .Focus suchen, bzw. dem XML entsprech dafür).
MFG
Björn
- Als Antwort markiert frank me Mittwoch, 12. Februar 2014 13:35
Alle Antworten
-
Hallo Björn,
nein, bei tbo handelt es sich um tboLength.
Da ich im Codebehind tboLength.Content = wert setze,
wird der TextChanged-EventHandler aufgerufen
und darin sage ich TextBox tbo = (TextBox) sender;
dann wird auf genau jene TextBox der Fokus gesetzt
(per Breakpoint überprüft). -
Hi Frank,
ich hab es jetzt bei mir ausprobiert und es Funktioniert ohne Probleme.
Wobei meine Textbox (Laut MSDM die standart Textbox) keine eigenschaft Content hat.
Setzt du vielicht noch an einer anderen Stelle den Focus. Z.B. im Übergerordneten Controll (einfach mal nach .Focus suchen, bzw. dem XML entsprech dafür).
MFG
Björn
- Als Antwort markiert frank me Mittwoch, 12. Februar 2014 13:35
-
Danke für die Antworten.
Es scheint so, als wenn
TextBox tbo = (TextBox) sender; tbo.Focus(); tbo.Select(tbo.Text.Length, 0);
nicht funktioniert (bei mir!).
Hingegen ein direkter Aufruf
tboSpecific.Focus(); ...
wird ausgeführt so wie es zu erwarten ist.