I have a winform where I have a textbox that will take upto 14 numbers. Now if user enters less that 14 i have to populate the rest of the fields with 0s. Eg. if a user 10 numbers the i have to include 4 more 0's to to make it 14.
Asked
Active
Viewed 191 times
3 Answers
4
Change the MaxLength
property of the text box to 14. After you get the Text
property, use, the PadLeft
, or PadRight
methods on the String
class.
Example
void textBox_LostFocus(object sender, EventArgs e)
{
var text = this.textBox.Text;
text = text.PadLeft(14, '0');
this.textBox.Text = text;
}
Results
var value = "abcd";
var leftPadded = value.PadLeft(14, '0'); // <- "0000000000abcd"
var rightPadded = value.PadRight(14, '0'); // <- "abcd0000000000"
You might also want to consider using the MaskedTextBox
class.

Dan
- 9,717
- 4
- 47
- 65
-
-
i have written this on the textChanged event of the textbox `var text = atxt.Text; var right = text.PadRight(14, '0');` but i am not getting the 0's in my string – Drone Sep 25 '12 at 05:54
-
1@Drone Good question. If you execute this code in a handler to the `TextChanged` event, as soon as you typed 1 character, or backspaced 1 character, the text would be replaced with the 14 character version. I would not execute it in a `TextChanged` handler, but rather a lost focus event handler: `Leave` or `LostFocus`. – Dan Sep 25 '12 at 05:55
-
1@Drone Make sure you reassign the text box's `Text` property to the string that you've padded. – Dan Sep 25 '12 at 06:01
-
1@Drone You need to assign the new string back to the text box. So the two lines you have, plus `atxt.Text = right;`. Or if you want to do all three steps in one line: `atxt.Text = atxt.Text.PadRight(14, '0');`. – Jeppe Stig Nielsen Sep 25 '12 at 06:05
-
ok wht i am now doing is in textbox.leave event i written this `var text = atxt.Text; var right = text.PadLeft(14, '0');` and in another button click event i am doing this `str = atxt.Text.Trim();` now i want this `str` string to contain those extra 0's but i am not getting it. – Drone Sep 25 '12 at 06:07
-
@Dan that solved my problem nicely... but is there a way not to show the 0's in the textbox? – Drone Sep 25 '12 at 06:11
-
@JeppeStigNielsen that solved my problem nicely... but is there a way not to show the 0's in the textbox? – Drone Sep 25 '12 at 06:11
0
textbox.TextChanged += new EventHandler( textbox_TextChanged );
private textbox_TextChanged(Object sender, EventArgs e) {
textbox.Text = textbox.Text.PadLeft(14, '0');
}

Dai
- 141,631
- 28
- 261
- 374