为什么可以';t在文本框中按CTRL+A或CTRL+Backspace
本文关键字:CTRL+A CTRL+Backspace 文本 为什么 | 更新日期: 2023-09-27 18:29:38
如果我尝试按CTRL+A(选择文本框中的所有文本),它会发出窗口错误噪音。
如果我尝试按CTRL+Backspace(删除最后一个单词而不是最后一个字符),它只会插入窗口中的"未知字符"(看起来像一个矩形)。
这只是一个文本框,我没有更改任何属性。
作为Hans Passant said
Ctrl+A实际上在这种模式下不起作用,您必须自己实现它。使用KeyDown事件处理程序并不困难。
要实现您想要的,您可以使用textbox
的KeyDown
事件
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control)
{
if (e.KeyCode == Keys.A)
{
textBox1.SelectAll();
}
if (e.KeyCode == Keys.Back)
{
e.SuppressKeyPress = true;
int selStart = textBox1.SelectionStart;
while (selStart > 0 && textBox1.Text.Substring(selStart - 1, 1) == " ")
{
selStart--;
}
int prevSpacePos = -1;
if (selStart != 0)
{
prevSpacePos = textBox1.Text.LastIndexOf(' ', selStart - 1);
}
textBox1.Select(prevSpacePos + 1, textBox1.SelectionStart - prevSpacePos - 1);
textBox1.SelectedText = "";
}
}
}