代码之家  ›  专栏  ›  技术社区  ›  Neil N HLGEM

如何允许在Winforms文本框上使用CTRL-V(粘贴)?

  •  12
  • Neil N HLGEM  · 技术社区  · 16 年前

    我无法使用CTRL-V将文本粘贴到其中任何一个,尽管我仍然可以右键单击并选择“粘贴”。这很烦人。

    我尝试过将表单的KeyPreview设置为true和false。TextBox.ShortcutsEnabled也是真的。

    8 回复  |  直到 16 年前
        1
  •  23
  •   Jeremy McGee    16 年前

    检查表单上是否有包含Ctrl-V快捷键的菜单。

        2
  •  13
  •   Dan Randolph    5 年前

    private void textBox1_KeyUp(object sender, KeyEventArgs e) {
      if (e.KeyData == Keys.V && e.Modifiers == Keys.Control)
        (sender as Textbox).Paste();
    }
    
        3
  •  4
  •   Josh Stodola    16 年前

    您发布的代码与Ctrl+V问题毫无关系,这是肯定的。除非你发布更多的代码,否则我不能告诉你更多。

    Ctrl+V不需要特殊的代码,但我的一个猜测是确保您有 YourTextBoxId.ShortcutsEnabled 着手 True .

        4
  •  2
  •   PunkConservative    16 年前

    http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx 关于这个问题。至少可以说很有趣。

    有鉴于此,我只是通过Webleeuw在文章中指出的键偶数处理程序实现了该功能。

        5
  •  2
  •   sandeep    15 年前

    我也遇到了同样的问题。经过大量的谷歌搜索,我终于找到了解决办法。这是因为在应用程序中,已定义了ctrl+v快捷方式(编辑菜单->粘贴)。去掉这个…对我来说很好…希望它能帮上忙。。。。

        6
  •  2
  •   j0k gauthamp    13 年前

    控制键 + 多行属性值为true时的快捷键。

        7
  •  1
  •   Robbie    11 年前

    转到控件的属性:

        8
  •  0
  •   Mortuza Shahariar    5 年前

    转到文本框属性->行为->允许删除设置为真。

        9
  •  -1
  •   Jehof    11 年前

    在我的例子中,我用下面的方法解决了菜单问题

    //this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)
    ((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
    
        10
  •  -1
  •   Chiranjeevi Kandel    5 年前
    //Check if you've ascribed Ctr + V on any events.
    //In this case, I've ascribed it to the following event.
    //Find that class and paste the code below.
    private void pasteHereToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Determine if there is any text in the Clipboard to paste into the                                //               //textbox        
            if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
            {
                textBox1.Paste();    
            }