日期:2014-05-18  浏览次数:20983 次

怎样让TextBox只能输入数值或科学小数?
如题。只能输入数字、小数点、正负号、或科学计数法的数值

------解决方案--------------------
Text Box for Currency in VB.NET 2010

VB.NET 和 C# 语法其实没有本质上的差别,你参考一下,主要是看其核心方法的重载。
------解决方案--------------------
在TextChanged事件里面判断:
double d = 0.0;
if (!Double.TryParse(textBox1.Text, out d))
MessageBox.Show("不是数字");
------解决方案--------------------
keypress中过滤或用正则表达式限制
------解决方案--------------------
楼上如何删除呢 textchanged事件出发时 值已经变了 如果是 输入法输入很多汉字怎么办
------解决方案--------------------
可以用正则表达式吧?
------解决方案--------------------
试试这个吧:
private void tbxCount_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 8 || Char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

------解决方案--------------------
C# code

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            Regex r = new Regex("^[0-9]{1,}$");
            if (!r.IsMatch(textBox1.Text))
            {
                MessageBox.Show("请输入数字");
            }
        }

------解决方案--------------------
探讨

在TextChanged事件里面判断:
double d = 0.0;
if (!Double.TryParse(textBox1.Text, out d))
MessageBox.Show("不是数字");

------解决方案--------------------
winform的话
可以考虑:NumericUpDown 
http://www.csharpwin.com/csharpresource/1623.shtml
或者

参考这个:
http://www.evget.com/zh-CN/Info/catalog/15539.html

希望对你有帮助
------解决方案--------------------
探讨
引用:

在TextChanged事件里面判断:
double d = 0.0;
if (!Double.TryParse(textBox1.Text, out d))
MessageBox.Show("不是数字");


楼主想直接屏蔽除数字以外的字符输入,textchanged 事件是马后炮通知而已,无效的,无法在楼主输入字符的时候将其屏蔽掉。