我正在尝试处理我的文本框输入值。我希望用户只能使用KeyPress输入一个范围内的数字。防爆。 (0 - 1000)。我有代码来防止任何输入不是一个数字。我无法弄清楚如何防止用户输入不在一定范围内的值。
Private Sub txt2x6LumberQuanity_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txt2x6LumberQuanity.KeyPress
If Not Char.IsNumber(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If
End Sub
有没有人有任何建议。我花了几个小时搜索,但似乎找不到合适的解决方案。
答案 0 :(得分:1)
我会使用更改的文本和ErrorProvider
组件来实现此效果:
有效参赛作品
无效条目
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int User2x6LumberQuantity
{
get
{
int x;
if (int.TryParse(txt2x6LumberQuantity.Text, out x))
{
return x;
}
return 0;
}
}
private void txt2x6LumberQuantity_TextChanged(object sender, EventArgs e)
{
errorProvider1.SetError(txt2x6LumberQuantity, null);
int x=User2x6LumberQuantity;
if (x<0||x>1000)
{
errorProvider1.SetError(txt2x6LumberQuantity, "Value Must Be (0-1000)");
continueButton.Enabled=false;
}
else
{
continueButton.Enabled=true;
}
}
}
答案 1 :(得分:-1)
您可以将其添加到Keypress事件处理程序
If Char.IsNumber(e.KeyChar) Then
Dim newtext As String = TextBox1.Text.Insert(TextBox1.SelectionStart, e.KeyChar.ToString)
If Not IsNumeric(newtext) OrElse CInt(newtext) > 1000 OrElse CInt(newtext) < 0 Then e.Handled = True
End If