Click here to Skip to main content
Click here to Skip to main content

Textbox for numbers with a comma thousand seperator comma for currency C#

, 28 May 2013
Rate this:
Please Sign up or sign in to vote.
A textbox usercontrol that displays numbers separated by comma such as currency.

Introduction

This is a simple and very usable usercontrol for entering numbers and displaying them such as currency. E. g., 1,200,000. I decided to make this a usercontrol because we can reuse it in multiple project. This usercontrol has two properties: "textWithcomma" that maintains the text of the usercontrol with a comma(','), "textWithoutcomma" that maintains the text of the usercontrol without comma. The second property is useful for math operations such as add ,...I have a method that skips the comma from the text and then saves it in the second property.

Using the code

  1. Use File->New Project and then select C# and press OK:
  2. Use Project->Add User Control and press OK:

  3. Now we have a stage like this to add components from the toolbox, in this project we need a TextBox for our usercontrol.

  4. Drag and drop a textbox from the toolbox:

  5. Right click on the textbox and select View Code. We will define two properties and a method which is used to skip comma from the text:
  6. The properties:

    public string textWithcomma { get; set; }
    public string textWithoutcomma { get; set; }

    And the method (this method is used to skip comma):

    public string skipComma(string str)
    {
        string[] ss = null;
        string strnew = "";
        if (str == "")
        {
            strnew = "0";
        }
        else
        {
            ss = str.Split(',');
            for (int i = 0; i < ss.Length; i++)
            {
                strnew += ss[i];
            }
        }
        return strnew;
    }
  7. Now we will right click on the textbox and select Properties and in the Properties dialog we will select events and then select the TextChanged event from the list and double click on it. In this method (TextChanged) we will write this code:
  8. if (textBox1.Text == "")
    {
        textBox1.Text =null;
        textWithcomma = "0"; //this property maintain the content of textbox with comma
        textWithoutcomma = "0";  //this property maintain the content of textbox without comma
    }
    else
    {
        if (textBox1.Text != "")
        {
            double d = Convert.ToDouble(skipComma(textBox1.Text));
            textBox1.Text=d.ToString("#,#",
              System.Globalization.CultureInfo.InvariantCulture);
            textWithcomma = textBox1.Text;//property maintain content of textbox with comma
            textWithoutcomma = skipComma(textBox1.Text);
            //property maintain content of textbox without comma
        }
    }
    textBox1.Select(textBox1.Text.Length, 0);
  9. Now we will right click on the textbox and select Properties and and then select events. Then from the event list we will choose the KeyPress event and double click on it. Now write the below code within this method. This code forces the textbox to accept numbers only:
    if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
  10. In the end Build the project by right clicking on the project (in this case WindowsFormApplication1) in Solution Explorer and selecting Build. Now you have a control in the Toolbox and you can use it several times in your project.

Please vote for me if this tip is useful!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

mohammad amiri

Iran (Islamic Republic Of) Iran (Islamic Republic Of)
No Biography provided

Comments and Discussions

 
Questionhow to add comma after each word PinmemberMember 1034435926-Feb-14 19:21 
GeneralMy vote of 5 PinmemberMember 1015531225-Oct-13 1:43 
GeneralRe: My vote of 5 Pinmembermohammad amiri11-Mar-14 4:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140827.1 | Last Updated 28 May 2013
Article Copyright 2013 by mohammad amiri
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid