Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have this textbox where the decimal place should only be two, it works but it disables the back space afterwards

  try
        {
            if (string.IsNullOrWhiteSpace(textBox1.Text))
            {
                textBox2.Clear();
            }
            else
            {
                if (Convert.ToDouble(textBox1.Text) > Convert.ToDouble(grandTotal.Text))
                {
                    double change = Convert.ToDouble(textBox1.Text) - Convert.ToDouble(grandTotal.Text);
                    textBox2.Text = change.ToString("#,0.00");
                }
                else if (Convert.ToDouble(textBox1.Text) == Convert.ToDouble(grandTotal.Text))
                {
                    textBox2.Text = "0";
                }
                else
                {
                    textBox2.Clear();
                }
            }
        }
        catch(Exception)
        {

        }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
221 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can do this on textbox KeyPress Event Handler:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == '.' && textBox1.Text.Contains('.'))
            e.Handled = true;
        if (char.IsNumber(e.KeyChar) || e.KeyChar == '.')
        {
            if (Regex.IsMatch(
             textBox1.Text,
             "^\d*\.\d{2}$")) e.Handled = true;
        }
        else e.Handled = e.KeyChar != (char)Keys.Back;
    }

Basically what it does is it limits the decimal places to two, it also limits decimal point into one. But the backspace should be working fine still.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...