如何防止按键更新 MaskedTextBox 的文本?
我需要验证用户在 MaskedTextBox 中输入的字符。 哪些字符有效取决于已输入的字符。 我尝试过使用 IsInputChar
和 OnKeyPress
,但是我是否在 IsInputChar
中返回 false 或将 e.Handled
设置为在 OnKeyPress 中为 true 时,框的文本仍设置为无效值。
如何防止按键更新 MaskedTextBox
的文本?
更新:MaskedTextBox 不是 TextBox。 我认为这不会产生什么影响,但从告诉我 e.Handled 应该有效的人数来看,也许确实有效。
I need to validate characters entered by the user in a MaskedTextBox
. Which characters are valid depends on those already entered. I've tried using IsInputChar
and OnKeyPress
, but whether I return false in IsInputChar
or set e.Handled
to true in OnKeyPress, the box's text is still set to the invalid value.
How do I prevent a keypress from updating a MaskedTextBox
's text?
UPDATE: MaskedTextBox not TextBox. I don't think that should make a difference, but from the number of people telling me that e.Handled
should work, perhaps it does.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不会在 textbox1 中键入字符“x”。
编辑:它也适用于 MaskedTextBox。
华泰
This will not type character 'x' in textbox1.
EDIT: It works for MaskedTextBox as well.
HTH
KeyPress
应该可以做到这一点; 你是在表格上做这个的吗? 或在控制? 例如:(仅允许“升序”字符)
请注意,这不会保护您免受复制/粘贴 - 您可能还需要查看 TextChanged 和/或 Validate。
The
KeyPress
should do it; are you doing this at the form? or at the control? For example:(only allows "ascending" characters)
Note that this won't protect you from copy/paste - you might have to look at TextChanged and/or Validate as well.
http://msdn.microsoft.com/ en-us/library/system.windows.forms.control.keydown.aspx 可能有帮助,KeyDown 事件?
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx Might help, the KeyDown event?