在C# WPF项目中使Enter像OK Click一样工作

2ledvvac  于 2023-10-22  发布在  C#
关注(0)|答案(1)|浏览(162)

我有一个OnPreviewKeyDown方法,当按下Enter键时,它执行一个Jumec方法。当用户按下Enter键时,我尝试将焦点移开并执行操作(vm.ProcessSelectedDocumentCommand.Execute(null)),但生成了与该操作相关的错误。当焦点位于控件(如文本框)上时会发生错误,这意味着用户正在进行编辑。这就是为什么我试图将焦点移到其他地方.在这种情况下,移到确定按钮。我还禁用了按钮,以确保用户不会按两次。
如果用户单击OK按钮,这只是执行操作,那么一切都正常。我在这里做错了什么,我如何才能使回车工作更像一个点击?

private void OnPreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == System.Windows.Input.Key.Enter)
            {
                btnProcess.Focus();
                btnProcess.IsEnabled = false;
                vm.ProcessSelectedDocumentCommand.Execute(null);
            }
        }

考虑到它们调用相同的方法,我期望Enter键以与单击相同的方式处理操作。

2skhul33

2skhul331#

这似乎是直接向前。将AcceptsReturn="false"添加到TextBox,并将IsDefault="True"添加到Button。然后当你在文本框中按回车键时,按钮会被触发
不要忘记删除OnPreviewKeyDown处理程序代码-这是没有必要的

相关问题