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
- Use File->New Project and then select C# and press OK:
- Use Project->Add User Control and press OK:
- Now we have a stage like this to add components from the toolbox, in this project we need a
TextBox
for our usercontrol.
- Drag and drop a textbox from the toolbox:
- 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:
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;
}
- 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:
if (textBox1.Text == "")
{
textBox1.Text =null;
textWithcomma = "0"; textWithoutcomma = "0"; }
else
{
if (textBox1.Text != "")
{
double d = Convert.ToDouble(skipComma(textBox1.Text));
textBox1.Text=d.ToString("#,#",
System.Globalization.CultureInfo.InvariantCulture);
textWithcomma = textBox1.Text; textWithoutcomma = skipComma(textBox1.Text);
}
}
textBox1.Select(textBox1.Text.Length, 0);
- 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;
}
- 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!