我有一个多行文本框,不应接受字母、数字、换行符(输入键)和退格键。简而言之,textbox.Text
不应该是可编辑的。但我确实希望文本框接受两个快捷键 - control 和 control+R。使文本框不可编辑的一种方法是将其设为只读。但是文本框根本不会接受任何击键。简而言之,我的快捷键(control和control+R)在只读方法中不起作用(Control+R)。
任何人都可以在这方面提供帮助吗?这就是我所要做的。
我在这里可以做的一件事是不要将文本框设置为只读,然后限制可以在文本框中输入的字符(字母和数字)。使用此代码:
private void txtResult_KeyPress(object sender, KeyPressEventArgs e)
{
// only modifier keys, escape, enter, backspace etc is accepted now
e.Handled = !char.IsControl(e.KeyChar);
}
private void txtResult_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control == true)
{
if (e.KeyCode == Keys.R)
{
// do something
}
else
{
//do something
}
}
if (e.KeyCode == Keys.Escape)
{
//do something
}
}
通过这种技术,我可以使用快捷键(control 和 control+R)。但这种方法的问题是 Enter 和 Backspace 键也可以编辑文本框的文本。如何专门限制从文本框中注册 Enter 和 Backspace 键,但让 Control 和 Escape 键注册?
最佳答案
您尝试过SuppressKeyPress = true
吗?
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control == true)
{
if (e.KeyCode == Keys.R)
{
// do something
}
else
{
//do something
}
}
else
e.SuppressKeyPress = true;
}
关于c# - 如何使多行文本框不接受 Enter 和 Backspace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636050/