想要做一个输入EMAIL的框,能不能用maskedTextBox自身功能检查输入的正确性

ltolll 2006-10-02 10:19:50
让非法字符无法输入,在TEXTBOX中要写不少代码,能不能少写点。
...全文
325 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltolll 2006-10-21
  • 打赏
  • 举报
回复
谢谢,研究一下.
seemwind 2006-10-21
  • 打赏
  • 举报
回复
用正则表达式啊
ltolll 2006-10-02
  • 打赏
  • 举报
回复
WINDOWS FORM
  • 打赏
  • 举报
回复
用js吧,放客户端
pfworld 2006-10-02
  • 打赏
  • 举报
回复
使用正则表达式 !!

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace prjCx
{
/// <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 自定义变量


//设置正则表达式串,默认为 可以输入26个英文字母、数字、下划线等(在外部输入中,系统会自动处理"\"的问题,所以不用在加@)
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 自定义方法


}//类定义结束
}
diandian82 2006-10-02
  • 打赏
  • 举报
回复
使用正则表达式啊,用不了多少代码的

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧