Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#文本框中允许Ctrl-A和Ctrl Backspace之类的操作_C#_User Interface - Fatal编程技术网

如何在C#文本框中允许Ctrl-A和Ctrl Backspace之类的操作

如何在C#文本框中允许Ctrl-A和Ctrl Backspace之类的操作,c#,user-interface,C#,User Interface,我有一个System.Windows.Forms.TextBox,它是多行的,但它不接受Control-a和Control Backspace之类的命令 Control-A不执行任何操作,Control Backspace会插入一个方框字符 “已启用快捷方式”属性设置为true。来自MSDN的属性: 当多行属性值为true时,TextBox控件不支持CTRL+A快捷键 你必须自己实施它 像这样的方法应该会奏效: private void textBox1_KeyDown(object s

我有一个System.Windows.Forms.TextBox,它是多行的,但它不接受Control-a和Control Backspace之类的命令

Control-A不执行任何操作,Control Backspace会插入一个方框字符

“已启用快捷方式”属性设置为true。

来自MSDN的属性:

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

你必须自己实施它

像这样的方法应该会奏效:

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control & e.KeyCode == Keys.A)
        {
            textBox1.SelectAll();
        }
        else if (e.Control & e.KeyCode == Keys.Back)
        {
            SendKeys.SendWait("^+{LEFT}{BACKSPACE}");
        }
    }

您能否显示您正在使用的代码以及它不接受命令的位置?它是一个文本框,而不是文字处理器。你自己去实现它。你真幸运。谢谢,控制退格怎么样?我使用了这么多,当一个文本框不支持它时,它会让我非常讨厌。@jdipero-我更新了答案以显示对Ctrl Backspace的支持(这就像
Ctrl+Shift+Left_Arrow
然后
Backspace
)。这只是一个例子,您可以在谷歌上搜索其他可能更好地满足您需求的实现;使用((文本框)发件人)。选择全部();因此,多个文本框可以使用相同的方法,您可以复制和粘贴,而无需担心文本框的名称。谢谢!e、 SuppressKeyPress可防止叮当声。您可能还需要设置e.Handled。@xr280xr谢谢您的提示。注意,根据:“将SuppressKeyPress设置为true也会将Handled设置为true。”