我把头发拉过这一头。非常简单的窗体程序。我有一个richtextbox,我想阻止退格在richtextbox中做任何事情。 这是我的代码
private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Back)
{
e.handled = true;
}
}
如果我在e.handled处设置了一个断点,并且我键入了退格键,它确实会中断。但是退格仍然会进入richtextbox。所以我看到了使用PreviewKeyDown的例子,但是这些例子都没有用!我试过了
void richTextBox1.PreviewKeyDown(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
但是KeyPressEventArgs无效!如果我使用Forms提供它的PreviewKeyDownEventArgs并且没有e.Handles可用。那怎么做呢?
由于
答案 0 :(得分:2)
使用KeyDown事件取消按退格键。
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
e.Handled = true;
}
}
关于KeyPress事件的MSDN页面有以下注释:
某些控件将处理KeyDown上的某些击键。例如,RichTextBox在调用KeyPress之前处理Enter键。在这种情况下,您无法取消KeyPress事件,而必须取消KeyDown中的击键。
答案 1 :(得分:1)
试试这个:
if (e.KeyChar == '\b')