首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[C#][转载]Winform TextBox中只能输入数字的几种常用方法(C#)

[C#][转载]Winform TextBox中只能输入数字的几种常用方法(C#)

作者头像
云未归来
发布2025-07-18 15:25:30
发布2025-07-18 15:25:30
2860
举报

方法一:  private void tBox_KeyPress(object sender, KeyPressEventArgs e)   {              if (e.KeyChar == 0x20) e.KeyChar = (char)0;  //禁止空格键              if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return;   //处理负数              if (e.KeyChar > 0x20)              {                  try                  {                      double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());                  }                  catch                  {                      e.KeyChar = (char)0;   //处理非法字符                  }              }  }  方法二:  private void TextBox_KeyPress(object sender, KeyPressEventArgs e)   {      if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar))      {        e.Handled = true;      }  }  或者  private void TextBox_KeyPress(object sender, KeyPressEventArgs e)  {      if(e.KeyChar!='\b'&&!Char.IsDigit(e.KeyChar))      {        e.Handled = true;      }  }  方法三:  private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)  {  if(e.KeyChar!='\b')//这是允许输入退格键  {  if((e.KeyChar<'0')||(e.KeyChar>'9'))//这是允许输入0-9数字  {  e.Handled = true;  }  }  }  方法四:  private void textBox1_Validating(object sender, CancelEventArgs e)   {   const string pattern = @"^\d+\.?\d+{1}quot;;   string content = ((TextBox)sender).Text;   if (!(Regex.IsMatch(content, pattern)))   {   errorProvider1.SetError((Control)sender, "只能输入数字!");   e.Cancel = true;   }   else   errorProvider1.SetError((Control)sender, null);   }  方法五:  private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)  {  if(e.KeyChar=='.' && this.textBox1.Text.IndexOf(".")!=-1)  {  e.Handled=true;  }  if(!((e.KeyChar>=48 && e.KeyChar<=57) || e.KeyChar=='.' || e.KeyChar==8))  {  e.Handled=true;  }  }  方法六:  private void tbx_LsRegCapital_KeyPress(object sender, KeyPressEventArgs e)  {              if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))              {                  e.Handled = true;//消除不合适字符              }              else if (Char.IsPunctuation(e.KeyChar))              {                  if (e.KeyChar != '.' || this.textBox1.Text.Length == 0)//小数点                  {                      e.Handled = true;                  }                  if (textBox1.Text.LastIndexOf('.') != -1)                  {                      e.Handled = true;                  }              }          }    方法七:  利用ASCII码处理办法、  {              if ((e.KeyChar <= 48 || e.KeyChar >=57) && (e.KeyChar != 8) && (e.KeyChar != 46))                e.Handled = true;  ================48代表0,57代表9,8代表空格,46代表小数点 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档