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#实现上传下载图片

    C#实现上传下载图片

    这篇文章主要为大家详细介绍了C#实现上传下载图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • C#开发交互式命令行应用示例

    C#开发交互式命令行应用示例

    这篇文章主要为大家介绍了C#开发交互式命令行应用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • sqlserver备份还原数据库功能封装分享

    sqlserver备份还原数据库功能封装分享

    这篇文章主要介绍了sqlserver备份还原数据库功能封装示例,需要的朋友可以参考下
    2014-03-03
  • C#使用RabbitMQ的详细教程

    C#使用RabbitMQ的详细教程

    RabbitMQ 是一个功能强大的消息队列系统,可用于在分布式系统中进行可靠的消息传递,本篇博客将详细介绍如何在 C# 中使用 RabbitMQ 实现各种消息队列操作,并通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • Winform使用DataGridView实现下拉筛选

    Winform使用DataGridView实现下拉筛选

    这篇文章主要为大家详细介绍了Winform如何使用原生DataGridView实现下拉筛选功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09
  • C#各种异常处理方式总结

    C#各种异常处理方式总结

    这篇文章介绍了C#各种异常的处理方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • C# GDI+实现时钟表盘

    C# GDI+实现时钟表盘

    这篇文章主要为大家详细介绍了C# GDI+实现时钟表盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • c#调用vc写的ocx控件示例

    c#调用vc写的ocx控件示例

    这篇文章主要介绍了c#调用vc写的ocx控件示例,需要的朋友可以参考下
    2014-04-04
  • Unity UI实现循环播放序列图

    Unity UI实现循环播放序列图

    这篇文章主要为大家详细介绍了Unity UI实现循环播放序列图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 常用类之TCP连接类-socket编程

    常用类之TCP连接类-socket编程

    常用类之TCP连接类-socket编程...
    2007-03-03

最新评论