Was ist der Unterschied (s) zwischen GotFocus
und GotKeyboardFocus
-und ähnlich LostFocus
und LostKeyboardFocus
?Der Unterschied zwischen GotFocus und GotKeyboardFocus
Sorry für die einfache Frage, aber ich habe es gegooglet und viele Blogposts gelesen, aber ich bin immer noch verwirrt. Es scheint, niemand weiß genau, was der Unterschied ist):
UPDATE:
Meine Nutzung:
Ich erstelle eine benutzerdefinierte Steuerung durch Control
-Klasse erweitern. Etwas wie ComboBox
aber mit einigen anderen Effekten. Ich versuche, eine Popup
zu öffnen und zu schließen, indem Sie eine Eigenschaft festlegen: IsDropDownOpen
genau wie eine ComboBox
durch die GotFocus
und LostFocus
Ereignisse. Ich will nicht Popup
werden geschlossen, wenn ich die Alt+Tab
ed die Fenster, aber werde geschlossen, wenn ich auf eine Button
zum Beispiel klicke oder ich gehe zu einem TextBox
. Ich tat:
private static void OnGotFocusHandler(object sender, RoutedEventArgs e) {
if (e.Handled)
return;
((SearchBox)sender).IsDropDownOpen = true;
e.Handled = true;
}
private static void OnLostFocusHandler(object sender, RoutedEventArgs e) {
if (e.Handled)
return;
((SearchBox)sender).IsDropDownOpen = false;
e.Handled = true;
}
Die GotFocus
funktioniert. Aber die Lost
hat man nicht. Wenn ich die Lost
Sachen in LostKeyboardFocus
dann wenn ich Alt+Tab
die Windows oder Window
geht inaktiv, dann wird die Methode aufgerufen, während ich nicht will. Wie kann ich es lösen?
+1 danke, gute Erklärung. eigentlich besser als MSDNs. Danke vielmals. Ich warte eine Weile auf weitere Antworten und akzeptiere dann - wenn kein besserer erhalten wird - deine. –
Nun, ich versuche ein 'Popup' zu öffnen (in einem benutzerdefinierten Steuerelement geerbt von' Control' Klasse), indem Sie eine 'IsDropDownOpen'-Eigenschaft festlegen.Ich setze es in "GotFocus" auf "wahr", es funktioniert. Ich möchte es auf 'false' im' LostFocus' Event setzen. Aber es funktioniert nicht. Ich möchte es nicht in 'LostKeyboardFocus', sondern in' LostFocus' machen. Irgendeine Idee bitte? –
Ich denke, dass Sie eine neue Frage mit einigen Codebeispielen erstellen müssen. Ich kann Ihr Szenario nicht anhand dieser kurzen Beschreibung debuggen. –