需要一个仅限数字的 Windows 控件 TextBox
我正在使用 System.Windows.Controls.TextBox 在 c# 中创建一个老式对话框。 有没有一种简单的方法可以将此框中的文本输入限制为仅数字?
谢谢!
I am creating an old-school dialog in c# using a System.Windows.Controls.TextBox .
Is there an easy way of limiting text input in this box to numeric only?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
只需实现 onkeyup 事件处理程序,如果按下的键不是 Character.IsDigit 则清除它。
http://msdn。 microsoft.com/en-us/library/system.windows.controls.textbox.onkeyup(VS.95).aspx
Just implement the onkeyup event handler and if the key pressed is not a Character.IsDigit then clear it.
http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.onkeyup(VS.95).aspx
您可以考虑使用 MaskedTextBox,设置相应地 屏蔽 属性。
You could consider using a MaskedTextBox, setting the Mask property accordingly.
这是摘自 我对之前问题的回答。
将此类添加到您的项目中
,然后在您的表单中使用它,如下所示
This is an extract from my answer to an earlier question.
Add this class to your project
and then use it in your form as follows
还要考虑您的设计是否需要在键入/粘贴时限制用户输入,或者是否可以在用户离开文本框时将用户输入简单地转换为数字。
通常,限制性方法更难做到(处理逗号、句点、货币符号、空格等......可能是一个巨大的痛苦),
然后这种方法变得简单如下:
Also consider whether your design needs to restrict user input when typed/pasted or if it's OK to simply convert the user input to a number when he leaves the textbox.
Often the restrictive approach is harder to do (dealing with commas, periods, currency symbols, spaces, etc... can be a huge pain)
This method then becomes as simple as: