1. 程式人生 > >winform TextBox只能輸入數字和小數點加小數點位置判斷

winform TextBox只能輸入數字和小數點加小數點位置判斷

 /// <summary>
        /// 限制只輸入數字
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MoveSpeedText_KeyPress(object sender, KeyPressEventArgs e)
        {

            //判斷按鍵是不是要輸入的型別。
            if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)
                e.Handled = true;

            //小數點的處理。
            if ((int)e.KeyChar == 46)                           //小數點
            {
                if (this.MoveSpeedText.Text.Length <= 0)
                    e.Handled = true;   //小數點不能在第一位
                else
                {
                    float f;
                    float oldf;
                    bool b1 = false, b2 = false;
                    b1 = float.TryParse(MoveSpeedText.Text, out oldf);
                    b2 = float.TryParse(MoveSpeedText.Text + e.KeyChar.ToString(), out f);
                    if (b2 == false)
                    {
                        if (b1 == true)
                            e.Handled = true;
                        else
                            e.Handled = false;
                    }
                }
            }
        }