winform textbox 只能输入数字和小数点

解决方案 »

  1.   

    keypress事件按照我下面写的吧 ,如果想用正则表达式就是楼上的 textBox1.KeyPress +=new KeyPressEventHandler(textBox1_KeyPress);
            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (char.IsNumber(e.KeyChar) || e.KeyChar == '.'||char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
      

  2.   


    控制只能输入整数或小数(供TextBox注册KeyPress事件)#region 控制只能输入整数或小数(供TextBox注册KeyPress事件)
            /**//// <summary>
            /// 控制只能输入整数或小数
            /// (小数位最多位4位,小数位可以自己修改)
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Txb_Decimal_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if(!(((e.KeyChar >= '0') && (e.KeyChar <= '9')) || e.KeyChar <= 31))
                {
                    if(e.KeyChar == '.')
                    {
                        if ( ((TextBox)sender).Text.Trim().IndexOf('.') > -1)
                            e.Handled   = true;
                    }
                    else
                        e.Handled = true;
                }    
                else
                {
                    if( e.KeyChar <= 31 )
                    {
                        e.Handled = false ;
                    }
                    else if( ((TextBox)sender).Text.Trim().IndexOf('.') > -1 )
                    {
                        if( ((TextBox)sender).Text.Trim().Substring(((TextBox)sender).Text.Trim().IndexOf('.') + 1 ).Length >= 4)
                            e.Handled = true ;
                    }                
                }
            }
            #endregion