我的WinForm profram中有TextBox
如何防止用户键入除箭头键,Esc和Enter之外的所有字符?
很抱歉,我忘了写这是针对Windows-mobile和Windows-mobile没有
e.SuppressKeyPress = true;
谢谢,抱歉不理解
答案 0 :(得分:1)
KeyDown事件将为您完成此任务。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
// These keys will be allowed
case Keys.Left:
case Keys.Right:
case Keys.Up:
case Keys.Down:
case Keys.Escape:
case Keys.Enter:
break;
// These keys will not be allowed
default:
e.SuppressKeyPress = true;
break;
}
}
答案 1 :(得分:0)
您可以处理事件TextBox.KeyDown
。
您不希望传递给TextBox的过滤键 - 检查KeyEventArgs.KeyCode是否是您的代码)
然后将KeyEventArgs.Handled和KeyEventArgs.SuppressKeyPress设置为true。
答案 2 :(得分:0)
正如BoltClock所写,这些字符不可打印,因此您无法“键入”它们。如果您打算忽略这些字符并对其他字符执行其他操作,则可以在文本框的KeyDown
事件中执行此操作。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (
e.KeyCode == Keys.Left ||
e.KeyCode == Keys.Right ||
e.KeyCode == Keys.Down ||
e.KeyCode == Keys.Up ||
e.KeyCode == Keys.Enter ||
e.KeyCode == Keys.Escape
)
{
e.SuppressKeyPress = true;
return;
}
//do sth...
}