验证文本框以限制数字输入
Validate text box to limited numeric input
我有 C# windows 形式的文本框。在这里,我将 tsextbox 的输入限制为数值。
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)))
e.Handled = true;
}
我还有两个要求。
- 我想让文本框只接受一个数字。它应该是 0、1、2 或 3。
- 如何在上面给出的代码中启用退格键?
试试这个:
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) || e.KeyChar == (char)8)
e.Handled = true;
}
要只接受一个字符,可以使用MaxLength
属性的TextBox
。
这是我的做法:
private void txtpref02_KeyDown(object sender, KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.D0:
case Keys.NumPad0:
case Keys.D1:
case Keys.NumPad1:
case Keys.D2:
case Keys.NumPad2:
case Keys.D3:
case Keys.NumPad3:
case Keys.Back:
case Keys.Delete:
return;
default:
e.SuppressKeyPress = true;
e.Handled = true;
break;
}
}
此外,您可以将 MaxLength
属性 设置为 1
以限制您指定的字符数。
请注意:此代码使用的是 KeyDown
事件,而不是 KeyPress
事件。
我有 C# windows 形式的文本框。在这里,我将 tsextbox 的输入限制为数值。
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)))
e.Handled = true;
}
我还有两个要求。
- 我想让文本框只接受一个数字。它应该是 0、1、2 或 3。
- 如何在上面给出的代码中启用退格键?
试试这个:
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) || e.KeyChar == (char)8)
e.Handled = true;
}
要只接受一个字符,可以使用MaxLength
属性的TextBox
。
这是我的做法:
private void txtpref02_KeyDown(object sender, KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.D0:
case Keys.NumPad0:
case Keys.D1:
case Keys.NumPad1:
case Keys.D2:
case Keys.NumPad2:
case Keys.D3:
case Keys.NumPad3:
case Keys.Back:
case Keys.Delete:
return;
default:
e.SuppressKeyPress = true;
e.Handled = true;
break;
}
}
此外,您可以将 MaxLength
属性 设置为 1
以限制您指定的字符数。
请注意:此代码使用的是 KeyDown
事件,而不是 KeyPress
事件。