我们有一个场景,我们正在通过COM向遗留的VB6应用程序公开一组WinForms UserControls。我们有3个不同的控件,其上有一个MenuStrip,其中将Control + F快捷键映射到菜单项,当输入快捷键时会调用特定于控件的查找项目对话框。在我们尝试在WinForms shell中测试此代码时,当存在所有3个控件时,适当的对话框(托管在活动的MdiChild中)弹出,但在VB6主机中通常会出现错误的对话框(似乎总是创建的第一个控件的对话框)。
我相当确定这与消息泵有关,但我似乎无法弄清楚如何确保在输入快捷键时调用正确的ToolStripMenuItem。
我知道使用全局/单例ShortcutKey管理器/服务覆盖ProcessCmdKey的选项是可能的,但那将是我们想要回退的最后选择。我只是觉得需要启动一个消息泵。
我相当确定这与消息泵有关,但我似乎无法弄清楚如何确保在输入快捷键时调用正确的ToolStripMenuItem。
我知道使用全局/单例ShortcutKey管理器/服务覆盖ProcessCmdKey的选项是可能的,但那将是我们想要回退的最后选择。我只是觉得需要启动一个消息泵。