我在c#windows窗体中有文本框。在这里,我将tsextbox的输入仅限制为数值。
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)))
e.Handled = true;
}
我有两个其他要求。
答案 0 :(得分:3)
以下是我的表现:
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
事件。
答案 1 :(得分:0)
试试这个:
private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) || e.KeyChar == (char)8)
e.Handled = true;
}
要只接受一个字符,您可以使用MaxLength
的{{1}}属性。