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

时间:2009-12-09 20:29:03

标签: c# .net winforms

我在Windows窗体上有几个文本框。

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

我用形式的KeyPreview尝试了这个,因为它既是真的又是假的。 TextBox.ShortcutsEnabled也是如此。

10 个答案:

答案 0 :(得分:20)

检查表单上是否有菜单,其中包含Ctrl-V的快捷方式。

答案 1 :(得分:10)

以下代码应该有所帮助:

private void textBox1_KeyUp(object sender, KeyEventArgs e) {
    if (e.KeyData == (Keys.Control | Keys.V))
        (sender as TextBox).Paste();
}

答案 2 :(得分:4)

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

Ctrl + V不需要特殊代码,但我猜测的是确保YourTextBoxId.ShortcutsEnabled设置为True

答案 3 :(得分:2)

我也遇到了同样的问题。经过大量的谷歌搜索,我终于找到了解决方案。这是因为在aplliciation ctrl + v快捷方式已经定义(编辑菜单 - >粘贴)。删除后...它对我来说很好....希望它有帮助......

答案 4 :(得分:2)

当Multiline属性值为true时,TextBox控件不支持 CTRL + A 快捷键。

答案 5 :(得分:1)

是的..我知道这已经得到了解答,但我认为我会把我的2才扔进去只是为了好玩。我也有类似的问题。将TextBox.ShortcutsEnabled值设置为True对我没有任何作用。我很惊讶地看到微软在这里留下的说明:http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx关于这个问题。至少可以说很有意思。

鉴于此,我只是通过Webleeuw的帖子中指出的密钥甚至处理程序来实现功能。

答案 6 :(得分:1)

转到控件的属性:

属性>行为>快捷方式已启用= true

已完成作业 - 现在将接受此控件的默认Windows快捷键笔划

答案 7 :(得分:0)

转到“文本框属性”->“行为”->“允许删除SET TRUE”。

答案 8 :(得分:-1)

您可以从表单的designer.cs / .vb表单中将已分配的相同快捷方式注释到其他控件。 在我的情况下,我按照以下方式解决了菜单

//this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)
((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));

答案 9 :(得分:-1)

//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();    
        }