在文本框中的数值中保留逗号的最有效方法?
假设我有一个文本框,我必须在该文本框中输入一个数字。我希望数字始终每 3 位有一个逗号,即使用户正在调整值也是如此。
在 OnChangeValue
事件中,我读取该值,将其转换为双精度,然后每 3 位用逗号再次将其写出,但随后,因为我正在重写该字符串,所以我的光标又回到了字符串的开头。
所以现在我想我可以读取更改前光标所在的数字有多少位,然后恢复该位置。但对于这么简单的事情来说,这似乎很混乱。有更有效的方法吗?
Let's say I have a text box, and I have to put a number in that text box. I want it so that the number always has commas every 3 digits even when the user is adjusting the value.
On the OnChangeValue
event, I read the value, convert it to double, then write it out again with commas every 3 digits, but then, because I'm rewriting the string, my cursor is back to the beginning of the string.
So now I'm thinking that I can read how many digits into the number the cursor is at before the change, and restore the location afterwards. But this seems like a lot of clutter for such a simple thing to do. Is there a more efficient way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用框架的
MaskedTextBox
控件来完成此操作。请参阅:http://msdn.microsoft.com/en -us/library/system.windows.forms.maskedtextbox.aspx
You can do this with the framework's
MaskedTextBox
control.See: http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx