Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
229 views
in Technique[技术] by (71.8m points)

C# how to restrict textbox decimal places to 2?

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

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

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...