控件的问题--怎样判断用户在文本框中输入的信息是否格式正确? C#中的文本控件,例如我的文本框要求输入0~1之间的小数,怎样判断数据类型正确并且范围也正确呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单但是粗鲁的方法就是try{ Double value Double.Parse(edtValue.Text); if (value < 0 || value >= 1) MessageBox.Show("必须是0~1之间的小数!");}catch{ MessageBox.Show("必须是0~1之间的小数!");");} RangeValidator控件.Type設爲Double,MininumValue設爲0 ,MaxnumValue設爲1,ControlToValidate設爲你要驗證的textbox.這是客戶端驗證,不需提交服務器. 用DEV的TEXTEDIT也可以实现,方法同上 to HaoTianWJ(昊天罔极) 我是中國大陸人,業務是面對香港和台灣人的,必須用繁體字,經常切換太蔴煩了難道你認爲香港人和台灣人都不是中國人???我打的又不是big5編碼. 我是楼主!嗯,XDvlper(XDeveloper)的粗鲁的方法也行,不过我有好几十个这样的控件需要验证,确实工作量不小。RangeValidator控件似乎不错,看看。 不过用RangeValidator的时候它都要提交页面用javascript正则表达式就不用这么麻烦 不知道RangeValidator是否支持c#WindowsForms编程,它好像是web控件呀。“正则”。听起来不错,但是不知对于我这样的新手来说是不是很难。 XDvlper(XDeveloper)的粗鲁的方法的粗鲁的方法行吗?它好像只能验证是不是超出了范围,如果输入了其他类型的数据呢?比如“abc”,或者“!#$”,类型的错误他也能检查出来吗? 我不知道在VS2005中能不能在Win32程序中有没有RangeValidator用, VS2003好像是不行的用Regex检查太麻烦了还不如就把我那个粗鲁的办法写成函数传入控件或者字符串就可以了private void CheckText(TextBox textbox){try{ Double value Double.Parse(textbox.Text); if (value < 0 || value >= 1) MessageBox.Show("必须是0~1之间的小数!");}catch{ MessageBox.Show("必须是0~1之间的小数!");");}}或者private void CheckText(string text){try{ Double value Double.Parse(text); if (value < 0 || value >= 1) MessageBox.Show("必须是0~1之间的小数!");}catch{ MessageBox.Show("必须是0~1之间的小数!");");}} 提供了一种errorprovider的控件阿,可以自动判断输入数据的合法性如果有很多控件需要判断,可以只声明一个errorprovider,在控件事件触发时候调用iconlocation,然后调用seterror方法private void txtAge_Validating(object sender,System.ComponentModel.CancelEvents e){if(txtAge.TextLength>0&&Convert.ToInt32(txtAge.Text)>70){errMain.SetIconAlignment((control)sender,ErrorIconAlignment.MiddleRight);errMain.SetError((Control)sender,"age must be less 70.");e.Cancel=true;else{errMain.SetError((Control)sender."");}}} 关于dockManager控件的使用 【C# winform求救高手】控制打印机打印 jquery正则的问题 求解 ◆100分求隐藏父类属性的问题◆ 怎样让程序延时! 土问,c#能保证在逻辑与运算中能保证lazy evaluation么? camperer,帖子分加错了。。你再来领吧。。。 如何用vs2010调用并操作excel2003文件 source 高分!请问哪里可以找到自动分词相关的资料! 兄弟们,帮帮忙,再做不出来要下岗了!重金求解! 用WebClient上传文件出错.
try
{
Double value Double.Parse(edtValue.Text);
if (value < 0 || value >= 1)
MessageBox.Show("必须是0~1之间的小数!");
}
catch
{
MessageBox.Show("必须是0~1之间的小数!");");
}
這是客戶端驗證,不需提交服務器.
我是中國大陸人,業務是面對香港和台灣人的,必須用繁體字,經常切換太蔴煩了
難道你認爲香港人和台灣人都不是中國人???
我打的又不是big5編碼.
嗯,XDvlper(XDeveloper)的粗鲁的方法也行,不过我有好几十个这样的控件需要验证,确实工作量不小。
RangeValidator控件似乎不错,看看。
用javascript正则表达式就不用这么麻烦
用Regex检查太麻烦了
还不如就把我那个粗鲁的办法写成函数传入控件或者字符串就可以了
private void CheckText(TextBox textbox)
{
try
{
Double value Double.Parse(textbox.Text);
if (value < 0 || value >= 1)
MessageBox.Show("必须是0~1之间的小数!");
}
catch
{
MessageBox.Show("必须是0~1之间的小数!");");
}
}
或者
private void CheckText(string text)
{
try
{
Double value Double.Parse(text);
if (value < 0 || value >= 1)
MessageBox.Show("必须是0~1之间的小数!");
}
catch
{
MessageBox.Show("必须是0~1之间的小数!");");
}
}
如果有很多控件需要判断,可以只声明一个errorprovider,在控件事件触发时候调用iconlocation,然后调用seterror方法private void txtAge_Validating(object sender,System.ComponentModel.CancelEvents e){
if(txtAge.TextLength>0&&Convert.ToInt32(txtAge.Text)>70){
errMain.SetIconAlignment((control)sender,ErrorIconAlignment.MiddleRight);
errMain.SetError((Control)sender,"age must be less 70.");
e.Cancel=true;
else{
errMain.SetError((Control)sender."");
}
}
}