【问题标题】:How do I show a hint on buttons has a keyboard shortcut?如何在具有键盘快捷键的按钮上显示提示?
【发布时间】:2012-06-08 11:56:33
【问题描述】:

我正在使用 Visual Studio 2008 中的 C# WinForm 应用程序。我已通过覆盖 ProcessCmdKey 为一些按钮添加了键盘快捷键,这些快捷键会触发按钮单击(CTRL + R、CTRL B 等...) .

当用户按住 CTRL 键时,我想在带有快捷键文本(“CTRL + R”)的按钮旁边显示提示、工具提示或其他内容,以便用户可以看到哪些按钮有快捷键以及什么组合是。

有没有人对如何解决这个问题有任何其他建议?

【问题讨论】:

  • 你的意思是哪个控件有焦点应该接收 CTRL+R 键事件并显示工具提示?
  • 没有。当用户按住 CTRL 键时,所有具有快捷方式的控件都应显示其快捷方式文本。
  • @Zeno:那是 Alt 键,不是 Ctrl。

标签: c# winforms keyboard-shortcuts


【解决方案1】:

在 Caption 中使用 & 可以做到这一点。当用户按下Alt 键时,按钮标题中& 之后的字符变为下划线,并且当用户按下该下划线字符键时。按钮的点击事件被触发。

(抱歉忘记了这个术语)。

【讨论】:

  • 由于某些原因我们不能在这个项目中使用 Alt 键和 & 在 Caption 中,我们必须使用 CTRL 键...
【解决方案2】:

我通过创建一个看起来类似于标准工具提示(带有标签的小框)的 WPF 控件解决了这个问题。然后,我对表单上的 ProcessCmdKey 和 OnKeyUp 进行了覆盖,以收听 CTRL 键按下和键升。

当用户按住 CTRL 键时,我会循环浏览所有具有快捷方式的控件,并在该控件之上创建一个 WPF 控件。对于每个 WPF 控件,我设置了相应的快捷方式文本。释放 CTRL 键时,我会删除 OnKeyUp 中的所有 WPF 控件。

【讨论】:

  • 我不明白您为什么需要在 WinForms 项目中创建 WPF 控件。你想要一个工具提示,只需使用一个工具提示。不需要 WPF 互操作。
猜你喜欢
  • 1970-01-01
  • 2015-11-23
  • 2012-07-13
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多