+ 1
Whats wrong with my code? everytime i input 3 digit number in textbox, the focus jump to the front of 3 digit that.
private void textBoxMoney_TextChanged(object sender, EventArgs e) { textBoxMoney.Text = string.Format("{0:n0}",double.Parse(textBoxMoney.Text); } output: the number should be like this 15,001 but in the output become like this 11,500 the number 1 in the back go to the front because the cursor lose focus
4 Réponses
+ 1
I want to get the thousand separator by doing string.Format
+ 1
so what the best way to get thousand separator while typing in textbox in c#?
0
I guess the cursor moves to the beginning of text because you changed the TextBox `Text` property every time the content changes. The content of the TextBox is redrawn entirely when it happens, and the cursor is moved to the left of text.
I'm not sure what that '{0:n0}' means, can you tell me? also, what exactly are you trying to do with the code.
0
Honestly that was quite a tricky thing, probably the easiest way would be to display the formatted text when the TextBox loses focus, so it happens only once rather than on content change.
A rather complex way (not even sure it'll work or is feasible), was to remember the cursor position before changing/formatting the text, and restore cursor position after the formatted text is displayed. That way the next input will go to the desired position (hopefully).