如何限制C#中的文本框只能接收数字和(点"."或逗号","),"."后只能输入2个数字字符。或“,”我正在尝试开发一个代码来限制使用C#的TextBox只允许数字输入+逗号(",")或点("."")+仅在2个数字后加上点或逗号,因此请查看可以这样输入的可能数字:3213,04=OK3211,664=Not32.31=OK32.3214=Not334,,00=Not3247,.00=Not214.,00=不是32..=不是8465,0=好654.0=好达到我的目标了吗?我开发了代码privatevoidtxtValormetrocubico_KeyPress(objectsender,KeyPressEventArgse){if(txtValormetrocubico.TextLength>=0&&(e.KeyChar==(char)Keys.OemPeriod||e.KeyChar==(char)Keys.Oemcomma)){//测试}else{if(!char.IsControl(e.KeyChar)&&!char.IsDigit(e.KeyChar)&&e.KeyChar!='.'&&e.KeyChar!=','){e.处理=真;}//只允许一个小数点if(e.KeyChar=='.'&&(senderasTextBox).Text.IndexOf('.')>-1){e.Handled=true;}if(e.KeyChar==','&&(senderasTextBox).Text.IndexOf(',')>-1){e.Handled=true;}}}试试这个代码!我希望这有帮助。如果我可以进一步帮助您,请告诉我。这是我写的辅助函数privateboolalreadyExist(string_text,refcharKeyChar){if(_text.IndexOf('.')>-1){KeyChar='.';返回真;}if(_text.IndexOf(',')>-1){KeyChar=',';返回真;}返回假;}这是您的按键事件处理程序privatevoidtxtValormetrocubico_KeyPress(objectsender,KeyPressEventArgse){if(!char.IsControl(e.KeyChar)&&!char.IsDigit(e.KeyChar)&&e.KeyChar!='.'&&e.KeyChar!=','){e.Handled=true;}//检查是否“。”,','按下charsepratorChar='s';if(e.KeyChar=='.'||e.KeyChar==','){//检查它是否在文本的开头不接受if(txtValormetrocubico.Text.Length==0)e.Handled=true;//检查它是否在文本的开头不接受if(txtValormetrocubico.SelectionStart==0)e.Handled=true;//检查是否已经存在'.',','如果(alreadyExist(txtValormetrocubico.Text,refsepratorChar))e.Handled=true;//检查是否“。”或','位于数字中间且在i之后t不是大于99的数字if(txtValormetrocubico.SelectionStart!=txtValormetrocubico.Text.Length&&e.Handled==false){//'.'或者','在中间字符串AfterDotString=txtValormetrocubico.Text.Substring(txtValormetrocubico.SelectionStart);如果(AfterDotString.Length>2){e.Handled=true;}}}//检查是否按下了数字if(Char.IsDigit(e.KeyChar)){//检查是否存在逗号或点.IndexOf(分隔字符);字符串afterSepratorString=txtValormetrocubico.Text.Substring(sepratorPosition&SepratorStarafterString>SepratorString>.Length>1){e.Handled=true;我想你需要像MaskedTextbox这样的东西,你有一些参考http://msdn.microsoft.com/en-us/library/kkx4h3az.aspxhttp://www.c-sharpcorner.com/uploadfile/mahesh/maskedtextbox-in-C-Sharp/做你想做的另一种方法是使用正则表达式然后你可以创建一个通用函数并在keypress事件,此代码是validate_textBox是一个通用函数privatevoidvalidate_textBox(TextBox_text,KeyPressEventArgse){if(!char.IsControl(e.KeyChar)&&!char.IsDigit(e.KeyChar)&&e.KeyChar!='.'&&e.KeyChar!=','){e.Handled=true;}if(!char.IsControl(e.KeyChar)&&!char.IsDigit(e.KeyChar)&&e.KeyChar!='.'&&e.KeyChar!=','){e.Handled=true;}//检查是否“。”,','按下charsepratorChar='s';if(e.KeyChar=='.'||e.KeyChar==','){//检查是否在文本开头notacceptif(_text.Text.Length==0)e.Handled=true;//检查它是否在文本的开头notacceptif(_text.SelectionStart==0)e.Handled=true;//检查是否已经存在'.',','如果(alreadyExist(_text.Text,refsepratorChar))e.Handled=true;//检查是否“。”或','位于数字中间且之后不是大于99的数字if(_text.SelectionStart!=_text.Text.Length&&e.Handled==false){//'.'或者','在中间字符串AfterDotString=_text.Text.Substring(_text.SelectionStart);如果(AfterDotString.Length>2){e.Handled=true;}}}//检查是否按下了数字.IndexOf(分隔字符);字符串afterSepratorString=_text.Text.Substring(sepratorPosition+1);如果(_text.SelectionStart>sepratorPosition&&afterSepratorString.Length>1){e.Handled=true;}}}}然后你可以为每个文本框调用这个代码的一个函数,上面的表格是C#学习教程:HowtolimitthetextboxinC#toonlyreceivenumbersand(dot""orcomma","),in”。“”或“,”后只允许有2个数字字符,以共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注—}privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse){validate_textBox(senderasTextBox,e);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
