有N个textbox控件,我想让他们都只能输入两位小数的实数,在textbox里输入值过后,值如果满足正则表达式则不做操作,不满足则清空相应的textbox,我想写到一个方法里面,然后所有textbox控件的leave事件都可以调用这个这个方法,不满足就可以清空对应的textbox应该要怎么做?在清空那里卡住了~帮帮忙~散分了
void 交通金额合计(string txt)//这里txt是调用方法是获取使用该方法的textbox的值
{
Regex reg = new Regex("^[0-9]+(.[0-9]{2})?$");//使用正则表达式判断输入的是否为数字
if (reg.IsMatch(txt))
{
//不做操作
}
else
{
MessageBox.Show("只能输入两位小数的正实数!");
//这里需要清空调用这个方法的textbox的值,不知道怎么写了
return;
}
}
例如textbox1里面输入abcd就会报错,然后让他清空textbox1.
private void textbox1_Leave(object sender, EventArgs e)
{
交通金额合计(textbox1.Text);
}
void 交通金额合计(string txt)//这里txt是调用方法是获取使用该方法的textbox的值
{
Regex reg = new Regex("^[0-9]+(.[0-9]{2})?$");//使用正则表达式判断输入的是否为数字
if (reg.IsMatch(txt))
{
//不做操作
}
else
{
MessageBox.Show("只能输入两位小数的正实数!");
//这里需要清空调用这个方法的textbox的值,不知道怎么写了
return;
}
}
例如textbox1里面输入abcd就会报错,然后让他清空textbox1.
private void textbox1_Leave(object sender, EventArgs e)
{
交通金额合计(textbox1.Text);
}
我不想在每个textbox事件里面都来重复写一次正则表达式验证
所以才想建一个方法,让每个textbox调用
private void textbox1_Leave(object sender, EventArgs e)
{
Regex reg = new Regex("^[0-9]+(.[0-9]{2})?$");//使用正则表达式判断输入的是否为数字
if (reg.IsMatch(textbox1.text))
{
//不做操作
}
else
{
MessageBox.Show("只能输入两位小数的正实数!");
textbox1.text="";
return;
}
}
{
if (mycons.GetType().ToString() == "System.From.TextBox")//好象是这样,忘了...
{
TextBox mybox= (TextBox)mycons;
mybox.Text = "";
}
}
遍历我也试过的,不行的~
谢谢大家
{
private Regex regExp = new Regex(""); public string RuleRegex
{
get { return regExp.ToString(); }
set
{
try
{
regExp = new Regex(value);//尝试匹配
}
catch
{
regExp = new Regex("");
}
}
} protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
if (!regExp.IsMatch(this.Text)) this.Text = string.Empty;
}
}
然后编译一次,在工具箱中拖出这个控件在窗体,用这个自定义的正则文本框。
foreach (object mycons in this.Controls)
{
if (mycons.GetType().ToString() == "System.Windows.Forms.TextBox")
{
TextBox mybox = (TextBox)mycons;
mybox.Text = "";
}
}
void 交通金额合计(object sender)//这里txt是调用方法是获取使用该方法的textbox的值
{
TextBox txt=sender as TextBox;
Regex reg = new Regex("^[0-9]+(.[0-9]{2})?$");//使用正则表达式判断输入的是否为数字
if (reg.IsMatch(txt.Text))
{
//不做操作
}
else
{
MessageBox.Show("只能输入两位小数的正实数!");
txt.Text="";
//这里需要清空调用这个方法的textbox的值,不知道怎么写了
return;
}
} private void textbox1_Leave(object sender, EventArgs e)
{
交通金额合计(sender);
}======================================================
再说就是检测动作,需要用到服务端么?