【发布时间】:2016-11-11 15:56:07
【问题描述】:
我有一个包含多个子表单的全局父表单,并希望有一个快捷键组合供用户在它们之间循环。我希望这个逻辑由父表单处理,以便子表单保持独立。
这种看似常见的场景(例如,在 Visual Studio 中切换活动文档、浏览器中的活动选项卡等)已被证明难以实现。到目前为止,我发现这样做的唯一方法是使用全局挂钩或热键。这种方法的问题是它们会阻止其他应用程序使用相同的热键,因为该设置是在系统范围内应用的。
即使在子窗体处于焦点时,所有者窗体也能监听特定按键的最佳方式是什么?
【问题讨论】:
-
您可以订阅您创建的每个子窗口的
PreviewKeyDown事件,或者将它们传送到处理它们的通用视图模型。 -
ctrl + tab 应该已经默认添加了。
-
@AbdulRehmanSayed 我没有使用 MDI 框架,只是具有共同所有者的子窗口。我宁愿避免使用 MDI,或者至少了解 MDI 是如何实现这一点的。
标签: c# winforms keyboard-shortcuts