验证文本框字段仅用于数字输入。我创建了一个基于表单的程序,需要一些输入验证。我需要确保用户只能在距离文本框中输入数值。到目前为止,我已经检查了文本框中是否有内容,但是如果它有值,那么它应该继续验证输入的值是一个数字:elseif(txtEvDistance.Text.Length==0){MessageBox.Show("请输入距离");}elseif(cboAddEvent.Text//isnumeric){MessageBox.Show("请输入有效的数字距离");您可以尝试使用TryParse方法,该方法允许您将字符串Parses转换为整数并返回一个布尔结果,指示操作成功或失败。整数距离;if(int.TryParse(txtEvDistance.Text,outdistance)){//是一个有效的整数=>你可以在这里使用距离变量}如果你想防止用户在输入信息时输入非数字值文本框,您可以像这样使用事件OnKeyPress://JustDigitsif(e.KeyChar==(char)8)e.Handled=false;//允许退格if(e.KeyChar==(char)13)btnSearch_Click(sender,e);//AllowEnter}如果用户使用鼠标(右键单击/粘贴)将消息“粘贴到文本框”中,则此解决方案将不起作用,在这种情况下,您应该添加额外的验证。这是另一个简单的解决方案}catch(Exceptionh){MessageBox.Show("请只提供数字");您可以通过客户端的javascript或在文本框上使用一些正则表达式验证器来完成。使用Javascript脚本type="text/javascript"language="javascript">functionvalidateNumbersOnly(e){varunicode=e.charCode?e.charCode:e.keyCode;if((unicode==8)||(unicode==9)||(unicode>47&&unicodetextbox(withfixedValidationExpression)YoucandothisintoutParse;//检查输入的点是否为数字if(Int32.TryParse(txtEvDistance.Text,outoutParse)&&outParse){//如果是数字就做你想做的事}else{//如果不是数字就做你想做的事}我同意Int.TryParse,但作为一个或者你可以使用正则表达式。正则表达式nonNumericRegex=newRegex(@"D");if(nonNumericRegex.IsMatch(txtEvDistance.Text)){//包含非数字字符。返回假;我有这个扩展,它是多用途的:publicstaticboolIsNumeric(thisobjectvalue){if(value==null||valueisDateTime){returnfalse;}如果(值是Int16||值是Int32||值是Int64||值是十进制||值是单数||值是双精度||值是布尔值){returntrue;}try{if(valueisstring)Double.Parse(valueasstring);否则Double.Parse(value.ToString());返回真;}赶上{}返回假;它适用于其他数据类型。应该为你想做的事工作。if(int.TryParse(txtDepartmentNo.Text,outcheckNumber)==false){lblMessage.Text=string.Empty;lblMessage.Visible=true;lblMessage.ForeColor=Color.Maroon;lblMessage.Text="您还没有输入号码";返回;这是一个解决方案,它允许只有负号的数字或带有负号和小数点的小数。以前的大多数答案都没有考虑到选定的文本。如果我将文本框的ShortcutsEnabled更改为false,我将无法将垃圾粘贴到文本框中(它会禁用右键单击)。一些解决方案允许您在减号之前输入数据。请确认我已经抓住了一个切!if(txt.Text==""||txt.SelectionStart==0){//如果第一个字符是减号或数字,并且//如果文本不包含减号或所选文本包含减号.如果((e.KeyChar=='-'||char.IsDigit(e.KeyChar))&&(!txt.Text.Contains("-")||txt.SelectedText.Contains("-")))返回错误的;否则返回真;}else{//如果它不是第一个字符,那么它必须是数字或退格符if(char.IsDigit(e.KeyChar)||e.KeyChar==Convert.ToChar(Keys.Back))returnfalse;否则返回真;}}else{//测试第一个字符-文本为空或选择从第一个字符开始。if(txt.Text==""||txt.SelectionStart==0){//如果第一个字符是减号或数字,并且//如果文本不包含减号或所选文本确实包含减号。如果((e.KeyChar=='-'||char.IsDigit(e.KeyChar))&&(!txt.Text.Contains("-")||txt.SelectedText.Contains("-")))返回错误的;else{//如果第一个字符是小数点或数字,并且//如果文本不包含小数点或所选文本包含小数点。如果((e.KeyChar=='.'||char.IsDigit(e.KeyChar))&&(!txt.Text.Contains(".")||txt.SelectedText.Contains(".")))返回错误的;否则返回真;}}else{//如果它不是第一个字符,则它必须是数字或退格符或//小数点和//如果文本不包含小数点或所选文本包含小数点。如果(char.IsDigit(e.KeyChar)||e.KeyChar==Convert.ToChar(Keys.Back)||(e.KeyChar=='.'&&(!txt.Text.Contains(".")||txt.SelectedText.Contains("."))))返回false;否则返回真;}}}要检查值是否为double:上面说的就是C#学习教程:validation文档字符串部分只用于数字输入如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注---privatevoidbutton1_Click(objectsender,EventArgse){if(!double.TryParse(textBox1.文本,输出doublemyX)){System.Console.WriteLine("it'snotadouble");返回;}elseSystem.Console.WriteLine("这是一个双");}本文收集自网络,不代表立场,如有侵权请点右联系管理员删除。如需转载请注明出处:
