C#中winform控制textbox输入只能为数字的方法
本文实例讲述了C#中winform控制textbox输入只能为数字的方法。分享给大家供大家参考。具体实现方法如下:
添加keyPress事件,控制键盘输入只能是自然数:
///<summary> ///控制键盘输入只能是自然数 ///</summary> ///<paramname="sender"></param> ///<paramname="e"></param> privatevoidtextbox1_KeyPress(objectsender,KeyPressEventArgse) { //允许输入:数字、退格键(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> ///<paramname="sender"></param> ///<paramname="e"></param> privatevoidtextbox1_TextChanged(objectsender,EventArgse) { varreg=newRegex("^[0-9]*$"); varstr=textbox1.Text.Trim(); varsb=newStringBuilder(); if(!reg.IsMatch(str)) { for(inti=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#程序设计有所帮助。