在开发界面输入界面时,经常遇到需要限制用户输入的情况。比如只允许输入数字、字母等等。在C#中可以通过控件的属性设置来限制用户输入。本文将简单实现设置textBox只能输入数字(正数、负数、小数),并深度讲解相关知识。
1. 设置只能输入数字
首先需要在textBox的KeyPress事件中进行输入判断,只有按下的键是数字键或Backspace键才可以输入,其他键位均不能输入。可以使用Char.IsDigit方法来判断当前输入的键是否是数字键。
示例代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
```
其中,e.KeyChar代表当前按下的键。如果不是数字键并且不是Backspace键,则e.Handled设置为true,表示该键无法输入。
2. 设置只能输入正数
在上述代码基础上,只需要再添加一个判断,如果输入的数字小于等于0则无法输入即可。
示例代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
{
e.Handled = true;
}
else if (e.KeyChar != (char)8 && Convert.ToDecimal(textBox1.Text + e.KeyChar.ToString()) <= 0)
{
e.Handled = true;
}
}
```
其中,Convert.ToDecimal(textBox1.Text + e.KeyChar.ToString())代表输入当前按下键后textBox1中的值。如果该值小于等于0,则代表输入的不是正数。
3. 设置只能输入小数
在上述代码基础上,再添加一个判断,判断输入的键是否为小数点。如果是小数点,则继续判断小数点后面的数字位数是否超过2位。
示例代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != '.')
{
e.Handled = true;
}
else if (e.KeyChar == '.' && textBox1.Text.Contains('.'))
{
e.Handled = true;
}
else if (e.KeyChar != (char)8 && !Char.IsDigit(e.KeyChar) && textBox1.Text.Contains('.'))
{
if (textBox1.Text.Substring(textBox1.Text.IndexOf('.')).Length >= 3)
{
e.Handled = true;
}
}
}
```
其中,textBox1.Text.Contains('.')判断当前textBox1中是否已经有小数点,如果已经有则无法输入。textBox1.Text.IndexOf('.')代表小数点在textBox1中的位置,textBox1.Text.Substring(textBox1.Text.IndexOf('.'))代表小数点后面的数字位。如果小数点后面的数字位数大于等于3,则无法输入。
4. 设置只能输入正数和负数
如果需要限制用户输入正数或负数,只需要在第一步代码中稍作修改即可。如果按下的键不是数字键、Backspace键以及负号符号(-),则无法输入。
示例代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != '-')
{
e.Handled = true;
}
else if ((e.KeyChar == '-' && textBox1.SelectionStart != 0) || (e.KeyChar == '-' && textBox1.Text.Contains('-')))
{
e.Handled = true;
}
else if (e.KeyChar != (char)8 && Convert.ToDecimal(textBox1.Text + e.KeyChar.ToString()) <= 0)
{
e.Handled = true;
}
}
```
其中,textBox1.SelectionStart代表当前光标在textBox1中的位置。如果此时按下的是负数符号且光标不在最前面,则无法输入。
5. 总结
限制用户输入可以提高用户输入体验,同时也可以避免输入错误。在本文中我们简单实现了设置textBox只能输入数字(正数、负数、小数),并深度讲解了相关知识。需要注意的是,在输入小数时需要注意保留小数位数,避免输入数据错误。
购买后如果没出现相关链接,请刷新当前页面!!!
链接失效的请留言 ,我看见了就补上!!!
网站内容来源于互联网,我们将这些信息转载出来的初衷在于分享与学习,这并不意味着我们站点对这些信息的观点或真实性作出认可,我们也不承担对这些信息的责任。
适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。适龄提示:适合18岁以上使用!
发表评论 取消回复