C#怎么限制textbox只能输入小数和负号?

要符合数学的规格,负号可有可无,有的话必须在开头,小数点不能在开头也不能在最后,输入完小数点后不能再输入,不能输入其他字符,0在前面只能有一个,如果输入了小数点,最后不能有0,不能输入空格,可以输入退格和删除,复制粘贴也要防范,赶脚好麻烦的样纸,正则我用过但是面对那么多规则,我不禁陷入了沉思当中……求大神解啊!!!

首先你要限制他输入要是数字和负号;

其次你要判断他中间需要有并且只能有一个小数点+负号。

限制数字代码如下(要确保输入能删能回车)写在KeyPress事件里:

            //如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
            if (!(Char.IsNumber(e.KeyChar)) //数字
                 && e.KeyChar != (char)13 //回车阿斯玛
                 && e.KeyChar= (char)8   //删除阿斯玛
                 && e.KeyChar= (char)46   // .阿斯玛
                 && e.KeyChar= (char)45  // -阿斯玛
               )
            {
               e.Handled = true;
            }

判断写在响应回车之时,写在KeyDown事件里:

             if(e.KeyCode==Keys.Enter)
             {
                if (textBox1.Text.Split(textBox1.Text,'.').Count==1&&textBox1.Text.SubString()!='-')
                {
                   textBox2.Focus(); //焦点这才移开
                }
                else
                {
                   MessageBox.Show("输入违法");
                }
              }

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-07

 KeyPress事件里面控制:

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 45 && e.KeyChar != 46)
            {
                e.Handled = true;
            }
            //输入为负号时,只能输入一次且只能输入一次
            if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0)) e.Handled = true;
            //输入为小数点时,只能输入一次且只能输入一次
            if (e.KeyChar == 46 && ((TextBox)sender).Text.IndexOf(".") >= 0) e.Handled = true;
        }

追问

在前面加点代码一开始就不可以输入小数点了。

追答

对的,现在是一开始就可以输入小数点,改改就行了。

本回答被提问者和网友采纳
第2个回答  2013-10-05
给文本框添加正则表达式^(-?\d+)(\.\d+)?

string regexString=@"^(-?\d+)(\.\d+)?"
Regex.IsMatch(TextBox1.Text, regexString);

C#怎么限制textbox只能输入小数和负号?
首先你要限制他输入要是数字和负号;其次你要判断他中间需要有并且只能有一个小数点+负号。限制数字代码如下(要确保输入能删能回车)写在KeyPress事件里:\/\/如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入 if (!(Char.IsNumber(e.KeyChar)) \/\/数字 && e.KeyChar != (c...

C#如何限制Textbox文本框只能输入数字
在新程序界面窗口上放置合适的控件:包括, 显示过程日志和提示的textbox输出控件; 用于输入11位数字的输入框。选择输入的文本框,将属性中的最大长度限制修改为11,保证只能输入11位数字。选择文本框的事件窗口,找到按键输入的方法KeyPress,双击建立新的方法。在按键方法中添加文本框只能输入数字的代码。

c# 如何让textbox只能输入数字和小数
c# 让textbox只输入数字和小数:拖一个Textbox到窗体上,添加OnKeyPress事件,在事件写判断的代码,只要判断不是这些键,设置e.Handled的值为true,就可以屏蔽输入。1.判断是否为数字或Backspace,按下面这样写的话只能输入数字和Backspace,所以还得给代码添加些条件,还要能够输入小数点。private void tex...

C#如何让textbox里只能输入数字
找到要限制的textbox按F4找到属性栏,然后找到属性栏最上面,有个闪电的图标, 那就是事件,点击,找到KeyPress双击,或的自己注册事件:this.textBox1.KeyPress += new KeyPressEventHandler(this.textBox1_KeyPress);委托函数:if (!(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyCha...

C#中的textbox中如何设置只能输入数字,如果是其他或小数点都不能输入...
在C#textBox中限制只能输入字母、数字、空格或逗号:private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ e.Handled = true;if ((e.KeyChar>='a'&&e.KeyChar<='z')||(e.KeyChar>='A'&&e.KeyChar<='Z')||(e.KeyChar >= '1' && e.KeyChar <= '9') || e....

C#如何让文本框TextBox只允许输入特定的字符输入
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { \/\/只允许输入0~9中间的数字,你可以修改允许输入的字符的e.keychar值达到你的需求。 if (e.KeyChar >= '0' && e.KeyChar<='9' ) { e.Handled = false; return; } else { e.Han...

c#中如何控制文本框中输入字符的范围
1、重写键盘事件OnKeyPress()键盘输入的字符可以通过重写TextBox控件的OnKeyPress()事件处理,见如下代码:protected override void OnKeyPress(KeyPressEventArgs e) \/\/ 屏蔽非数字键{ base.OnKeyPress(e); if (this.ReadOnly) \/\/ 只读, 不处理 { return; } if ((int)e.KeyChar <= 32) \/\/ 特殊...

c# 计算器代码怎样只允许在数字后面输入一个点,至少有1个数字包括0的...
我封装好的方法 现在textbox中只能输入浮点数,整数位数、小数位数、正负号可控。如下:\/\/\/ \/\/\/ 限制textbox的内容为float类型 \/\/\/ \/\/\/ 文本框 \/\/\/ 整数个数 \/\/\/ 小数个数 \/\/\/ 是否允许正负号 public static void CheckFloatOfTextBox(TextBox textBox, int intCount, int decimalCount...

在C#widows窗体中如何设置textbox只能输入数字和小数点且第一位必须是...
textbox.set

VC#如何给textbox输入值进行限制
使用正则表达式 Regex regex = new Regex("^[a-zA-Z\\d]*$");if (regex.IsMatch(textBox.Text)){ \/\/如果是字母数字要做的事 }

相似回答