怎么限制TextBox的输入的数字是9位数以内 怎么限制TextBox的输入的数字是9位数以内 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以写一个自定义控把keypress,keydown 事件结合一下可以写出来,不过会比较麻烦,要好好的理理算法. 正则表达式:[0-9]{9}验证;或者用keyclick事件,将键盘锁定,只允许输入数字。 asp.net里有验证控件,From里没有吧private void textBox_Leave(object sender, System.EventArgs e){ string text1=@"[0-9A-Z]{9}"; if(!Regex.IsMatch(this.textBox.Text,text1,RegexOptions.IgnoreCase)) { MessageBox.Show("你输入的格式或位数错误"); }}这样是只能输入9位的数字或字母,焦点离开文本框时判断,如果要9位以内,去掉{9}直接把textBox.MaxLength=9; 在winform内可以使用自定义控件!!做一个带有设置正则表达式的TextBox控件就可以了!using System;using System.Collections;using System.ComponentModel;using System.Drawing;using System.Data;using System.Windows.Forms;namespace prjCXSF{ /// <summary> /// MaskTextBox 的摘要说明。 /// </summary> public class MaskTextBox : System.Windows.Forms.TextBox { #region 系统定义内容 /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; public MaskTextBox():base() { //初始化正则表达式类 this.regex = new System.Text.RegularExpressions.Regex(this.sRegExInner); //将TextChanged事件与自定义的该事件的处理方法进行关联 一般说,如果直接在TextChanged事件做,由于不断的对this.Text进行赋值操作, //则会不断的引起该事件 所以可以采取委托与其进行关联,当触发时,只进行了一次触发,而不是连续触发 this.TextChanged += new EventHandler(this.fCheck); } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #endregion 系统定义内容 #region 自定义变量 //设置正则表达式串,默认为 可以输入数字(在外部输入中,系统会自动处理"\"的问题,所以不用在加@) private string sRegExInner = @"^\d*$"; //只需要在控件属性内设置正则表达式就可以进行想要的限制了! private System.Text.RegularExpressions.Regex regex; public string sRegEx { get { return sRegExInner; } set { //在设置变量的时候声明正则表达式类;否则由于对象已生成,则正则表达式形式已固化在对象之中,则外部设置是没有任何意义的(已更改不了已生成对象的正则表达式形式) this.sRegExInner = value; regex = new System.Text.RegularExpressions.Regex(this.sRegExInner); } } //用于记录先前的TextBox中的值,当输入不合法的字符串时,要对其进行 private string sOldValue =""; #endregion #region 自定义方法 //进行校验 private void fCheck(object sender,System.EventArgs e) { if(this.regex.Match(this.Text).Success) { this.sOldValue = this.Text; } else { //以下内容,涉及到对this.Text进行了两次赋值,一次赋值时,并没有当时就再引发TextChanged事件,第二次才引发 this.Text = this.sOldValue; //追加空串,目的是将光标移至最后 this.AppendText(""); } }//函数体结束 #endregion 自定义方法 }//类定义结束} 数据库到底在开发怎么使用的 关于拷贝文件被占用问题。请赐教 怎么把Object 转为 void* 求c#高手。帮忙 问个关于xml遍历的问题 新手,frontpage中怎么移动超链接! 同志们,web控件和服务器控件有什么不同啊? 为了要加入queue,用了很多循环,求更高效的办法。 我想装.NET Framework SDK最终版,原先装的是beta2版本,请告诉我具体操作步骤和应注意问题,谢谢! WPF我在后台Model声明的是double类型数据,为什么在前台默认是0,而不是0.0? 微软有没有论坛的开发包?? 如何设置GridView第一行的背景色为blue?
private void textBox_Leave(object sender, System.EventArgs e)
{
string text1=@"[0-9A-Z]{9}";
if(!Regex.IsMatch(this.textBox.Text,text1,RegexOptions.IgnoreCase))
{
MessageBox.Show("你输入的格式或位数错误");
}
}
这样是只能输入9位的数字或字母,焦点离开文本框时判断,如果要9位以内,去掉{9}
直接把textBox.MaxLength=9;
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;namespace prjCXSF
{
/// <summary>
/// MaskTextBox 的摘要说明。
/// </summary>
public class MaskTextBox : System.Windows.Forms.TextBox
{ #region 系统定义内容 /// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public MaskTextBox():base()
{ //初始化正则表达式类
this.regex = new System.Text.RegularExpressions.Regex(this.sRegExInner); //将TextChanged事件与自定义的该事件的处理方法进行关联 一般说,如果直接在TextChanged事件做,由于不断的对this.Text进行赋值操作,
//则会不断的引起该事件 所以可以采取委托与其进行关联,当触发时,只进行了一次触发,而不是连续触发
this.TextChanged += new EventHandler(this.fCheck); } /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #endregion 系统定义内容 #region 自定义变量
//设置正则表达式串,默认为 可以输入数字(在外部输入中,系统会自动处理"\"的问题,所以不用在加@)
private string sRegExInner = @"^\d*$"; //只需要在控件属性内设置正则表达式就可以进行想要的限制了! private System.Text.RegularExpressions.Regex regex; public string sRegEx
{
get
{
return sRegExInner;
}
set
{
//在设置变量的时候声明正则表达式类;否则由于对象已生成,则正则表达式形式已固化在对象之中,则外部设置是没有任何意义的(已更改不了已生成对象的正则表达式形式)
this.sRegExInner = value;
regex = new System.Text.RegularExpressions.Regex(this.sRegExInner);
}
}
//用于记录先前的TextBox中的值,当输入不合法的字符串时,要对其进行
private string sOldValue =""; #endregion #region 自定义方法
//进行校验
private void fCheck(object sender,System.EventArgs e)
{
if(this.regex.Match(this.Text).Success)
{
this.sOldValue = this.Text;
}
else
{
//以下内容,涉及到对this.Text进行了两次赋值,一次赋值时,并没有当时就再引发TextChanged事件,第二次才引发 this.Text = this.sOldValue;
//追加空串,目的是将光标移至最后
this.AppendText("");
}
}//函数体结束 #endregion 自定义方法
}//类定义结束
}