正则表达式。
if(System.Text.RegularExpressions.Regex.IsMatch(this.TextBox1.Text,"\\d\\.{0,1}\\d"))
{
//通过验证
}
else
{
//输入有错误
}

解决方案 »

  1.   

    先定义个Bool值,为假。然后捕捉用户的所有输入,如录入一个数字后即为真,下一步录入一个.后又为假,如在为假时录入.即出错。
      

  2.   

    添加RegularExpressionsValidator控件控制文本框,正则表达式楼上已经给出
      

  3.   

    在文本框中中的KeyPress和KeyUp的两个事件中添加如下代码
    bool is非数字 = false;
    //只能输入数字
    private void txtGoodsPrice_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    ((TextBox)sender).ImeMode   = ImeMode.Disable;
    this.is非数字 = false;
    ((TextBox)sender).Tag = ((TextBox)sender).Text;
    //允许数字和删除键及小数点输入
    if((e.KeyChar<48||e.KeyChar>57) && e.KeyChar!=8 && e.KeyChar !=(char)('.')  )
    {
    e.Handled = true;
    this.is非数字 = true;
    }
    //小数点只能输入一次
    if(e.KeyChar == (char)('.')  && ((TextBox)sender).Text.LastIndexOf('.') != -1 )
    {

    e.Handled = true;
    }
    //小数点不能输入在第一位
    if(e.KeyChar == (char)('.') && ((TextBox)sender).Text == "")
    {
    e.Handled = true;
    }
    //第一位是0,第二位必须是.
    if(e.KeyChar != (char)('.') && ((TextBox)sender).Text == "0"   )
    {
    e.Handled = true;
    }
    if(e.KeyChar==8)
    {
    e.Handled = false; }
    //含有中文
    if (e.KeyChar >= 0x4e00 && e.KeyChar <= 0x9fa5 )
    {
    this.is非数字 = true;
    }
    }
    //只能输入数字不允许汉字
    private void txtGoodsPrice_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {

    if(this.is非数字 && ((TextBox)sender).Text != ((TextBox)sender).Tag.ToString() )
    {
    MessageBox.Show("只能输入数字!!","系统提示",MessageBoxButtons.OK, MessageBoxIcon.Question);
    ((TextBox)sender).Text = ((TextBox)sender).Tag .ToString();
    ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length ;
    this.is非数字 = false;
    return;
    }
    }
      

  4.   

    to hanbinghai(海宁) :
    如何将这些代码加入某一TextBox呢?并且TextBox没有KeyPress和KeyUp这两个事件呀?请多指教,本人正在研究中......................