thu*_*aso 10 c# wpf keyboard-events winforms
我希望捕获删除键按下,并在按下键时不执行任何操作.如何在WPF和Windows窗体中执行此操作?
Eri*_*ric 29
将MVVM与WPF一起使用时,您可以使用输入绑定捕获XAML中的按键.
<ListView.InputBindings>
<KeyBinding Command="{Binding COMMANDTORUN}"
Key="KEYHERE" />
</ListView.InputBindings>
Run Code Online (Sandbox Code Playgroud)
Chr*_*isF 17
对于WPF添加KeyDown处理程序:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
MessageBox.Show("delete pressed");
e.Handled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
这几乎与WinForms相同:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
MessageBox.Show("delete pressed");
e.Handled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
别忘了打开KeyPreview.
如果要阻止正在执行的键默认操作,请e.Handled = true按上面所示进行设置.它在WinForms和WPF中是一样的