WinForm中的TextBox控件一般用于用户输入文本信息,但在某些情境下我们需要限制用户只能输入数字,而不能输入其他字符。在本文中,我们将介绍常用的几种方法来实现这一功能,并提供案例说明。
一、使用KeyPress事件实现
1. 在WinForm的设计界面中,选中需要限制输入的TextBox控件,打开属性面板。
2. 在事件选项卡中双击KeyPress事件,进入代码编辑界面。
3. 在代码编辑界面中添加以下代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
```
4. 这段代码的作用是当用户输入字符不是数字或者不是退格键时,取消输入。
5. 测试时只能输入数字和退格键。
示例代码:
```
using System;
using System.Windows.Forms;
namespace TextBoxOnlyNumeric
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsDigit(e.KeyChar)) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
}
}
```
二、使用TextChanged事件实现
1. 在WinForm的设计界面中,选中需要限制输入的TextBox控件,打开属性面板。
2. 在事件选项卡中双击TextChanged事件,进入代码编辑界面。
3. 在代码编辑界面中添加以下代码:
```
private void textBox1_TextChanged(object sender, EventArgs e)
{
string text = textBox1.Text;
for (int i = 0; i < text.Length; i++)
{
if (!Char.IsDigit(text[i]))
{
textBox1.Text = "";
MessageBox.Show("只能输入数字!");
return;
}
}
}
```
4. 这段代码的作用是检查用户输入的每一个字符,如果不是数字,则弹出提示并清空TextBox中的内容。
5. 测试时,只能输入数字。
示例代码:
```
using System;
using System.Windows.Forms;
namespace TextBoxOnlyNumeric
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
string text = textBox1.Text;
for (int i = 0; i < text.Length; i++)
{
if (!Char.IsDigit(text[i]))
{
textBox1.Text = "";
MessageBox.Show("只能输入数字!");
return;
}
}
}
}
}
```
三、使用正则表达式实现
1. 在WinForm的设计界面中,选中需要限制输入的TextBox控件,打开属性面板。
2. 在事件选项卡中双击KeyPress事件,进入代码编辑界面。
3. 在代码编辑界面中添加以下代码:
```
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex reg = new Regex(@"^[0-9]+$");
e.Handled = !reg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != (char)8;
}
```
4. 这段代码的作用是使用正则表达式来判断用户输入的内容是否只包含数字,如果输入的字符不是数字或退格键,则取消输入。
5. 测试时,只能输入数字和退格键。
示例代码:
```
using System;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace TextBoxOnlyNumeric
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex reg = new Regex(@"^[0-9]+$");
e.Handled = !reg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != (char)8;
}
}
}
```
本文介绍了WinForm中实现TextBox控件只能输入数字的三种方法:使用KeyPress事件、使用TextChanged事件和使用正则表达式。每种方法都提供了相应的代码,并给出了详细的说明及案例说明。读者可根据实际需要选择适合自己的方法。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复