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

 更新时间:2015年01月09日 08:46:44   投稿:shichen2014  
这篇文章主要介绍了C#中winform控制textbox输入只能为数字的方法,包括使用keyPress事件限制键盘输入以及TextChanged事件限制粘贴等情况,来实现控制输入为数字的功能,需要的朋友可以参考下

本文实例讲述了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# using的用法与好处

    谈C# using的用法与好处

    这篇文章主要为大家详细介绍了C# using的用法与好处,具体分析了using指令调用的Dispose()方法,感兴趣的朋友可以参考一下
    2016-05-05
  • C#使用NPOI进行Excel和Word文件处理

    C#使用NPOI进行Excel和Word文件处理

    NPOI是一个基于.NET的API,用于读写微软的OLE 2 Compound Document formats,如Microsoft Office Excel和Word,下面就跟随小编一起来看看它的具体操作吧
    2024-03-03
  • Unity3D制作序列帧动画的方法

    Unity3D制作序列帧动画的方法

    这篇文章主要为大家详细介绍了Unity3D制作序列帧动画的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • c#中使用自动属性减少代码输入量

    c#中使用自动属性减少代码输入量

    .Net 3.0中的自动属性可以大幅度降低我们输入的代码量,需要的朋友可以参考下
    2012-12-12
  • C# XML基础入门小结(XML文件内容增删改查清)

    C# XML基础入门小结(XML文件内容增删改查清)

    本文主要介绍了C# XML基础入门小结(XML文件内容增删改查清),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C#实现的鼠标钩子

    C#实现的鼠标钩子

    本文给大家分享的是使用C#实现鼠标钩子功能,程序已能获取鼠标坐标,其他就没别的功能了,有需要的小伙伴参考下吧。
    2015-03-03
  • C#实现扑克游戏(21点)的示例代码

    C#实现扑克游戏(21点)的示例代码

    21点又名黑杰克,该游戏由2到6个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。本文将用C#实现这一经典游戏,需要的可以参考一下
    2022-08-08
  • 在C#中捕获内存不足异常

    在C#中捕获内存不足异常

    这篇文章主要介绍了在C#中捕获内存不足异常,下面文章内容围绕如何在C#中捕获内存不足异常的相关资料展开详细内容,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-12-12
  • C#判断日期是否到期的方法

    C#判断日期是否到期的方法

    这篇文章主要介绍了C#判断日期是否到期的方法,是C#程序设计中非常实用的技巧,需要的朋友可以参考下
    2014-08-08
  • 深入理解C# 装箱和拆箱(整理篇)

    深入理解C# 装箱和拆箱(整理篇)

    通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换
    2017-08-08

最新评论