C 设置textBox只能输入数字(正数,负数,小数)简单实现

在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/

点赞(17) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部