为了账号安全,请及时绑定邮箱和手机立即绑定

在Windows窗体应用程序中实现键盘快捷方式的最佳方法?

/ 猿问

在Windows窗体应用程序中实现键盘快捷方式的最佳方法?

扬帆大鱼 2019-06-20 16:51:46

在Windows窗体应用程序中实现键盘快捷方式的最佳方法?

我正在寻找一种实现常用Windows键盘快捷键的最佳方法(例如克特+F克特+N)在我的Windows窗体在C#中应用。

应用程序有一个主窗体,它承载了许多子窗体(一次一个)。当用户点击克特+F,我想展示一张定制的搜索表格。搜索表单将取决于应用程序中当前打开的子窗体。

我在考虑用这样的方法儿童按键活动:

   if (e.KeyCode == Keys.F && Control.ModifierKeys == Keys.Control)
        // Show search form

但这不管用。当您按下键时,事件甚至不会触发。解决办法是什么?


查看完整描述

3 回答

?
鸿蒙传说

你可能忘了设置表格键预览财产归真。覆盖ProcessCmdKey()方法是通用解决方案:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
  if (keyData == (Keys.Control | Keys.F)) {
    MessageBox.Show("What the Ctrl+F?");
    return true;
  }
  return base.ProcessCmdKey(ref msg, keyData);}


查看完整回答
反对 回复 2019-06-20
?
九州编程

最好的方法是使用菜单助记符,即在您的主表单中有菜单项,这些菜单项被分配给您想要的键盘快捷方式。然后,其他一切都在内部处理,您所要做的就是实现在Click该菜单项的事件处理程序。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 429 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信