C# 将文本框验证为有限的数字输入
我有c#windows格式的文本框。这里,我将tsextbox的输入限制为只输入数值C# 将文本框验证为有限的数字输入,c#,winforms,validation,textbox,keypress,C#,Winforms,Validation,Textbox,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 txt
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)))
e.Handled = true;
}
我还有两个要求
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) || e.KeyChar == (char)8)
e.Handled = true;
}
要仅接受一个字符,您可以使用文本框的MaxLength
属性
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
事件。现在退格有效,最大长度也有效。谢谢。是否仍有限制输入的数字仅为该(0,1,2,3)集合中的一个。