Lorsque vous appuyez sur Enter n'importe où dans un HTML form
il déclenche son action
name__, ce qui équivaut à appuyer sur le bouton submit
name__. Comment faire une fenêtre que quand je presse Enter n'importe où il déclenchera un événement?
Assignez l’événement PreviewKeyDown
à la fenêtre en XAML, puis vérifiez le KeyEventArgs
dans codebehind pour déterminer si l’utilisateur a appuyé sur le Enter clé.
Code XAML:
<Window
[...]
PreviewKeyDown="Window_PreviewKeyDown">
Code derrière:
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// Whatever code you want if enter key is pressed goes here
}
}
J'ai trouvé que le contrôle DatePicker
avalerait le Enter appuyez sur la touche pour que le bouton par défaut ne soit pas cliqué. J'ai écrit ce gestionnaire d'événements pour résoudre ce problème. Utilisez PreviewKeyUp
pour vous assurer que DatePicker
exécute son code de formatage de la date avant de cliquer sur le bouton par défaut.
private void DatePicker_PreviewKeyUp(object sender, KeyEventArgs e) {
// event handler to click the default button when you hit enter on DatePicker
if (e.Key == Key.Enter) {
// https://www.codeproject.com/Tips/739358/WPF-Programmatically-click-the-default-button
System.Windows.Input.AccessKeyManager.ProcessKey(null, "\x000D", false);
}
}