如果MenuStrip设置了此快捷方式,则快捷键Ctrl + C Ctrl + V在文本框中不起作用

use*_*821 12 c# shortcuts keyboard-shortcuts menustrip winforms

目标:使用复制和粘贴的Menustrip,用户将看到快捷键.

MenuStrip阻止TextBoxes

问题:如果你有一个MenuStrip并设置了ShortcutKeys,它们被菜单"捕获"但不再被文本框"捕获".这意味着您不能在文本框中使用Ctrl + C/V - 只能通过右键单击.如果删除快捷方式,文本框工作正常.

这是为什么?如果我不想将条目命名为"复制______ Ctrl + C",那该解决方案是什么?

示例项目:http://www.file-upload.net/download-4098087/MenuBlocksSTRG.zip.html

MSDN已关机ATM我发现此链接:

Lar*_*ech 1

在这些情况下,您可能必须自己处理事情。

简单的例子:

private void copyToolStripMenuItem_Click(object sender, EventArgs e) {
  if (this.ActiveControl is TextBox) {
    Clipboard.SetText(((TextBox)this.ActiveControl).SelectedText);
  } else {
    // do your menu Edit-Copy code here
  }
}

private void pasteToolStripMenuItem_Click(object sender, EventArgs e) {
  if (this.ActiveControl is TextBox) {
    ((TextBox)this.ActiveControl).SelectedText = Clipboard.GetText();
  } else {
    // do you menu Edit-Paste code here
  }
}
Run Code Online (Sandbox Code Playgroud)