Als u ergens in een HTML form
op Enterdrukt, wordt de action
geactiveerd, wat overeenkomt met het indrukken van de submit
knop.
Hoe maak ik een venster dat een gebeurtenis activeert als ik ergens op Enterdruk?
Antwoord 1, autoriteit 100%
Stel de IsDefault
eigenschap op de knopin op true om de Enter-toets in te schakelen om de actie van die knop te activeren. Er is ook de IsCancel
eigenschap die hetzelfde doet voor de Escape-toets.
Antwoord 2, autoriteit 6%
Wijs de gebeurtenis PreviewKeyDown
toe aan het venster in XAML en controleer vervolgens de KeyEventArgs
in codebehind om te bepalen of de gebruiker op de Enter-toets heeft gedrukt.
XAML-code:
<Window
[...]
PreviewKeyDown="Window_PreviewKeyDown">
Code achter:
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// Whatever code you want if enter key is pressed goes here
}
}
Antwoord 3
Ik ontdekte dat het DatePicker
-besturingselement de Enter-toets inslikt, zodat er niet op de standaardknop wordt geklikt. Ik schreef deze gebeurtenishandler om dat op te lossen. Gebruik de PreviewKeyUp
om ervoor te zorgen dat de DatePicker
zijn datumnotatiecode uitvoert voordat hij op de standaardknop klikt.
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);
}
}
Antwoord 4
<Button Name="btnDefault" IsDefault="true" Click="OnClickDefault">OK</Button>
U kunt dit doen door de eigenschap IsDefault van de knop in te stellen op True.
U kunt gedetailleerde informatie krijgen uit de documenten van Microsoft.