在Windows开发中,经常会用到TextBox控件,它可以让用户在其中输入文本。但有时候我们需要限制用户输入的范围,比如只允许输入数字,或者只允许输入小数等等。本文就以C#语言为例,介绍如何设置TextBox只能输入数字,包括正数、负数和小数。
1. 只允许输入数字
首先,我们可以通过TextBox控件的KeyPress事件来实现只允许输入数字的功能。具体实现如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 如果输入的不是数字、删除键、回车键或负号,则取消输入
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != (char)13 && e.KeyChar != '-')
{
e.Handled = true;
}
// 如果输入的是负号,则只允许在第一位输入
if (e.KeyChar == '-' && textBox1.SelectionStart != 0)
{
e.Handled = true;
}
}
```
上述代码首先判断用户输入的字符是否是数字、删除键、回车键或负号,若不是则取消输入;然后判断如果用户输入的是负号,则只允许在第一位输入。其中:
- Char.IsDigit方法用于判断一个字符是否是数字;
- e.KeyChar表示用户输入的字符;
- (char)8和(char)13表示的是删除键和回车键的ASCII码值;
- textBox1.SelectionStart表示当前光标位置。
2. 允许输入正数和负数
如果需要允许用户输入正数和负数,则可以在上述代码的基础上稍作修改,具体实现如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 如果输入的不是数字、删除键、回车键或负号,则取消输入
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != (char)13 && e.KeyChar != '-')
{
e.Handled = true;
}
// 如果输入的是负号,则只允许在第一位输入
if (e.KeyChar == '-' && textBox1.SelectionStart != 0)
{
e.Handled = true;
}
}
```
其实修改的代码非常简单,只需要判断用户输入的字符中是否包含负号,如果是则判断负号是否在第一位即可。
3. 允许输入小数
最后,我们来介绍如何允许用户输入小数。这里我们需要判断是否包含小数点,以及小数点的位置是否正确。具体实现如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 如果输入的不是数字、删除键、回车键、负号或小数点,则取消输入
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != (char)13 && e.KeyChar != '-' && e.KeyChar != '.')
{
e.Handled = true;
}
// 如果输入的是负号,则只允许在第一位输入
if (e.KeyChar == '-' && textBox1.SelectionStart != 0)
{
e.Handled = true;
}
// 如果输入的是小数点,则只能输入一次,并且不能在第一位或最后一位输入
if (e.KeyChar == '.')
{
if (textBox1.Text.Length == 0 || textBox1.Text.IndexOf('.') != -1 || textBox1.SelectionStart == 0 || textBox1.SelectionStart == textBox1.Text.Length)
{
e.Handled = true;
}
}
}
```
上述代码的主要修改点是:
- 判断用户输入的字符中是否包含小数点,如果是则判断小数点的位置是否正确;
- 如果输入的是小数点,则只能输入一次,并且不能在第一位或最后一位输入。其中,textBox1.Text.Length表示当前文本框中字符的个数,textBox1.Text.IndexOf('.')表示小数点在字符中的位置。
总结
本文介绍了如何通过C#语言实现TextBox只允许输入数字、包括正数、负数和小数。不同的限制条件需要不同的判断方法,但原理都是类似的。通过上述代码,读者可以掌握TextBox控件中的键盘事件,在此基础上可以实现更多的限制条件,例如只允许输入汉字、只允许输入字母等等。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复