当前位置: 移动技术网 > IT编程>开发语言>c# > C#中winform控制textbox输入只能为数字的方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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#程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网