C# TextBox实现数字与点限制输入
需积分: 50 181 浏览量
更新于2024-10-22
收藏 2KB TXT 举报
在C#编程中,有时我们需要限制文本框(textBox)的输入内容,确保用户只能输入数字。本文将详细介绍如何实现这一功能,通过多种方法来控制TextBox的输入行为,防止非数字字符的输入。
首先,为了阻止除数字、小数点和退格键以外的字符,可以使用`KeyPress`事件处理程序。在`KeyPress`事件中,检查`e.KeyChar`的值,判断它是否是数字、小数点或退格键。以下是一段示例代码:
```csharp
if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.') { e.Handled = true; }
if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8)) { e.Handled = true; }
if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)) { e.Handled = true; }
```
这里,`Char.IsDigit()`函数用于检测字符是否为数字,`Char.IsPunctuation()`判断字符是否为标点符号,`Char.IsControl()`检查字符是否为控制字符(如退格、换行等)。通过这种方式,可以确保输入的字符符合只包含数字和小数点的要求。
其次,如果需要更严格的正则表达式验证,可以在文本框内容改变后使用`string`的`Regex`方法。例如,创建一个正则表达式`/^[1-9][0-9]*$/`,这个表达式匹配的字符串仅限于非负整数。当文本框内容不符合该模式时,弹出警告并清空文本框:
```csharp
string regExp = /^[1-9][0-9]*$/;
if (!regExp.IsMatch(this.txtLogin.Text)) {
alert("输入无效");
this.txtLogin.Clear();
return;
}
```
另外,为了处理小数点的特殊情况,比如不允许连续输入多个小数点,可以检查当前文本框的文本是否已经包含小数点。如果输入的是小数点,并且文本框已经有小数点,则忽略这次输入:
```csharp
if (e.KeyChar == '.')
{
if (txtImprestMoney.Text.Contains(".")) {
e.Handled = true;
}
}
```
通过组合使用`KeyPress`事件处理、正则表达式验证以及特定字符处理,可以有效地实现C#中的textBox输入限制,确保用户只能输入数字。这在处理财务相关的输入,或者需要精确数值输入的场景中尤为实用。
2954 浏览量
682 浏览量
191 浏览量
170 浏览量
218 浏览量
614 浏览量
278 浏览量

pretyjfh
- 粉丝: 6
最新资源
- VB实现Excel数据导入到ListView控件技术
- 触屏版wap购物网站模板及多技术源码大全
- ZOJ1027求串相似度解题策略与代码分析
- Excel表格数据合并工具:高效整合多个数据源
- MFC列表控件:实现下拉选择与编辑功能
- Tinymce4集成Powerpaste插件即用版使用教程
- 探索QMLVncViewer:Qt Quick打造的VNC查看器
- Mybatis生成器:快速自定义实体类与Mapper文件
- Dota 2插件开发:TrollsAndElves自定义魔兽3地图攻略
- C语言编写单片机控制蜂鸣器唱歌教程
- Ansible自动化脚本简化Ubuntu本地配置流程
- 探索ListView扩展:BlurStickyHeaderListView源码解析
- 探索traces.vim插件:Vim的范围选择与模式高亮预览
- 快速掌握Ruby编译与安装的神器:ruby-build
- C语言实现P1口灯花样控制源代码及使用指南
- 会员管理系统:消费激励方案及其源代码