首页 > 编程语言 >C# 限制输入为字母或数字以及长度

C# 限制输入为字母或数字以及长度

时间:2023-04-13 10:34:24浏览次数:24  
标签:字符 Handled C# 字母 char && 长度 KeyChar 输入

日常开发过程中,验证字符的合法性一直是一个必不可少的步骤,以前都是在用户输入完再做判断,不仅麻烦在不符合标准的时候还要提示用户修改,体验很差,为什么不在输入的时候加以限制呢?

WinformTextBox控件为例,这里提供两种方案:

  • 通过字符匹配
  • 正则表达式

在用户输入时限制,所以选用KeyPress事件。

字符匹配

private void txt_Address_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
  // 只允许输入字母和数字
  if (!char.IsLetterOrDigit(e.KeyChar) && !char.IsControl(e.KeyChar) && e.KeyChar != '\b')
  {
    e.Handled = true;
  }

  // 限制输入长度为8位
  if (txt_Address.Text.Length >= 8 && !char.IsControl(e.KeyChar))
  {
    e.Handled = true;
  }
}

以上代码使用了TextBoxKeyPress事件处理程序。在该事件中,使用char.IsLetterOrDigit方法来判断输入的字符是否是字母或数字,如果不是,则将其处理掉,不允许输入。同时,使用char.IsControl方法来判断输入的字符是否是控制字符,如退格键、删除键等,这些特殊按键是允许输入的。另外,使用TextBoxText属性来获取输入框中的文本长度,如果长度超过 8 位并且输入的字符不是控制字符,也将其处理掉,不允许输入超过 8 位的字符。

测试过程中发现这样判断有一个缺陷就是中文还是能输进去

标签:字符,Handled,C#,字母,char,&&,长度,KeyChar,输入
From: https://www.cnblogs.com/BoiledYakult/p/17312559.html

相关文章

  • curl 命令
    简介:curl是常用的命令行工具,用来请求Web服务器。它的名字就是客户端(client)的URL工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代Postman这一类的图形界面工具。如果在一个curl命令中不指定具体的方法,那么默认的就是使用GET方法。对于其它......
  • 让 Spartacus 服务器端渲染引入 long API 调用超时机制的两种配置方法
    两种方法,使用config.backend.timeout={浏览器:...,服务器:...},或者可以更具体地配置,即基于Request粒度,通过将HTTP_TIMEOUT_CONFIGHttpContextToken传递给AngularHttpClient的方法来针对每个具体请求进行配置。在SSR(Node.js)中,超时处理耗时过长的外部http调用是一项尤为重......
  • Python stylecloud制作酷炫的词云图
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • c语言贪吃蛇(1)地图实现
    采用循环输出来实现按照行和列的顺序两次for循环输出。代码:结果: ......
  • Javascript对象
    对象对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串,数值,数组,函数对象由属性和方法组成属性:事物的特征,常用名词方法:事物的行为,常用动词创建对象利用对象字面量创建对象varobj={uname:'tom',age:18,sex:'男',......
  • 回溯理论基础及leetcode
    回溯与递归相辅相成;回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。回溯搜索法纯暴力搜索解决的问题组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条......
  • mvc请求传递参数——普通参数
         ......
  • MATLAB代码:基于二阶锥优化及OLTC档位选择的配电网优化调度
    MATLAB代码:基于二阶锥优化及OLTC档位选择的配电网优化调度关键词:OLTC档位选择二阶锥优化动态优化最优潮流参考文档:《主动配电网最优潮流研究及其应用实例》仅参考部分模型,非完全复现《主动配电网多源协同运行优化研究_乔珊》仅参考部分模型,非完全复现仿真平台:MATLABYALMI......
  • 工作流引擎 Activiti 进阶教程
    一、流程实例什么是流程实例流程实例(ProcessInstance)代表流程定义的执行实例。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。启动流程实例并添加Businesskey(业务标识)流程定义部署在activiti后,就可以在系统中通过activiti去管理......
  • PaddleSpeech docker develop-gpu-cuda10.2-cudnn7-latest 缺失 libsndfile1-dev 和
    Paddle可以說是各種坑,但支持國產,含淚試用了百度飛漿的Speech。1.坑點Dockerdevelop-gpu-cuda10.2-cudnn7-latest缺失:1.libsndfile1-dev2.CUDA_VISIBLE_DEVICES 2.安裝教程也沒什麼安裝教程。下載docker鏡像和項目源碼。dockerpullpaddlecloud/paddlespeech:devel......