.net ToolStripMenuItem快捷键,Ctrl-Shift-P与Ctrl-P

.net ToolStripMenuItem快捷键,Ctrl-Shift-P与Ctrl-P,.net,winforms,keyboard-shortcuts,menuitem,.net,Winforms,Keyboard Shortcuts,Menuitem,我的快捷键设置如下: //Ctrl+p->打印 //Ctrl+Shift+p->打印预览 但是Ctrl+Shift+p组合会触发打印,而不是预览。我做错了什么?如果我将其更改为Ctrl+Shift+Q,它将正确预览。我怀疑这里面有秩序。当按下Ctrl+Shift+P组合时,它会首先检查Ctrl+P,这是满足的,因此它调用打印事件处理程序而不是预览处理程序。这是正确的假设吗 我尝试更改MergeIndex中指定的菜单项的顺序,还更改了将控件添加到ToolStripItemCollection的顺序

我的快捷键设置如下:

//Ctrl+p->打印

//Ctrl+Shift+p->打印预览

但是Ctrl+Shift+p组合会触发打印,而不是预览。我做错了什么?如果我将其更改为Ctrl+Shift+Q,它将正确预览。我怀疑这里面有秩序。当按下Ctrl+Shift+P组合时,它会首先检查Ctrl+P,这是满足的,因此它调用打印事件处理程序而不是预览处理程序。这是正确的假设吗


我尝试更改MergeIndex中指定的菜单项的顺序,还更改了将控件添加到ToolStripItemCollection的顺序,但没有成功。

您的快捷方式看起来是正确的。听起来好像单击事件处理程序可能混淆了。不,事件处理程序是正确的。当我把ctrl-shift-P改为ctrl-shift-Q时,它工作正常。。。你需要更好地记录这一点。根据你发布的代码,我无法重现这个问题。如果不是事件处理程序,可能您在其他地方有代码查看按键?。这是MDI应用程序吗?项目中有没有其他快捷菜单?是的,它是MDI。不,不涉及其他菜单。我只是认为MergeIndex可能会影响处理顺序。问题可能是当你按下Ctr+Shift+P时,两个快捷键的条件都满足了。。也许您可以指定打印预览时不应按shift键..&=~钥匙,轮班
this.menuCmdPrint.ShortcutKeys = ((System.Windows.Forms.Keys)
    ((System.Windows.Forms.Keys.Control |
      System.Windows.Forms.Keys.P)));
this.menuCmdPrintPreview.ShortcutKeys = ((System.Windows.Forms.Keys)
   (((System.Windows.Forms.Keys.Control |
      System.Windows.Forms.Keys.Shift) |
      System.Windows.Forms.Keys.P)));