码迷,mamicode.com
首页 > Windows程序 > 详细

C#中winform控制textbox输入只能为数字的方法

时间:2017-12-14 04:00:03      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:splay   deb   rgs   href   start   字符   stringbu   default   change   

本文实例讲述了C#中winform控制textbox输入只能为数字的方法。分享给大家供大家参考。具体实现方法如下:

添加keyPress事件,控制键盘输入只能是自然数:


代码如下:


/// <summary>

/// 控制键盘输入只能是自然数

/// </summary>

/// <param name=”sender”></param>

/// <param name=”e”></param>

private void textbox1_KeyPress(object sender, KeyPressEventArgs e)

{

// 允许输入:数字、退格键(8)、全选(1)、复制(3)、粘贴(22)

if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 &&

e.KeyChar != 1 && e.KeyChar != 3 && e.KeyChar != 22)

{

e.Handled = true;

}

}

但是这样不能避免粘贴文字里含有非数字字符的情况,可以添加TextChanged事件进行控制:


代码如下:


/// <summary>

/// 粘贴时过滤不是数字的字符

/// </summary>

/// <param name=”sender”></param>

/// <param name=”e”></param>

private void textbox1_TextChanged(object sender, EventArgs e)

{

var reg = new Regex(“^[0-9]*$”);

var str = textbox1.Text.Trim();

var sb = new StringBuilder();

if (!reg.IsMatch(str))

{

for (int i = 0; i < str.Length; i++)

{

if (reg.IsMatch(str[i].ToString()))

{

sb.Append(str[i].ToString());

}

}

textbox1.Text = sb.ToString();

//定义输入焦点在最后一个字符

textbox1.SelectionStart = textbox1.Text.Length;

}

}

希望本文所述对大家的C#程序设计有所帮助。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#中winform控制textbox输入只能为数字的方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23202.html






相关内容

C#中winform控制textbox输入只能为数字的方法

标签:splay   deb   rgs   href   start   字符   stringbu   default   change   

原文地址:http://www.cnblogs.com/paobuke/p/8035332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!