WinForm中的TextBox控件是用来输入文本信息的工具,但有时我们需要限制输入的内容。例如,我们希望某文本框中只能输入数字,这时就可以通过以下几种方法实现。
1. 使用KeyPress事件
KeyPress事件在用户按下键时触发,我们可以在该事件中判断当前输入的字符是否是数字或控制字符,如果不是,则手动删除该字符。示例如下:
```C#
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
```
这段代码中,IsControl()方法用来判断是否为控制字符(例如退格键),IsDigit()方法用来判断是否为数字。如果输入的字符既不是控制字符又不是数字,则将Handled属性设置为true,表示此事件已经处理完毕,不需要再向上传递。
2. 使用TextChanged事件
TextChanged事件在文本框的内容发生改变时触发,我们可以在该事件中判断当前输入的字符是否为数字或控制字符,如果不是,则手动删除该字符。示例如下:
```C#
private void textBox1_TextChanged(object sender, EventArgs e)
{
string input = textBox1.Text;
StringBuilder builder = new StringBuilder();
foreach (char c in input)
{
if (char.IsDigit(c))
{
builder.Append(c);
}
}
textBox1.Text = builder.ToString();
textBox1.SelectionStart = builder.Length;
}
```
这段代码中,我们使用StringBuilder类来创建一个新的字符串,只将其中的数字保留下来。遍历输入的每个字符,如果是数字,则添加到builder中。最后将builder转换为字符串,并将其赋值给文本框。同时将光标位置设为文本框的末尾,保证在输入过程中光标始终在最后。
3. 使用正则表达式
正则表达式是一种通过字符模式来匹配和查找字符串的方法,可以用来判断字符串是否符合某种格式。例如,我们可以使用正则表达式来判断一个字符串是否为数字。示例如下:
```C#
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex regex = new Regex("[^0-9\b]");
if (regex.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
}
}
```
这段代码中,我们使用正则表达式[^\d\b]来匹配非数字和退格键。如果输入的字符符合该模式,则将事件标记为已处理,否则将其传递给上一级处理。
以上就是TextBox中只能输入数字的几种常用方法,通过这些方法我们可以轻松地限制用户输入的内容。
购买后如果没出现相关链接,请刷新当前页面!!!
链接失效的请留言 ,我看见了就补上!!!
网站内容来源于互联网,我们将这些信息转载出来的初衷在于分享与学习,这并不意味着我们站点对这些信息的观点或真实性作出认可,我们也不承担对这些信息的责任。
适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。适龄提示:适合18岁以上使用!
发表评论 取消回复