隐藏PromptChar for .NET的MaskedTextBox

时间:2009-09-22 12:26:01

标签: .net winforms user-interface maskedtextbox

有没有办法在不显示PromptChar的情况下使用MaskedTextBox?我想指定一个掩码来验证输入,但我不希望任何提示字符在编辑模式下占用空间。

原因是当我想接受有限字符集的自由文本时,所有字符都是可选的字母数字。我遇到的问题是,当我选择所有文本时,甚至会选择提示字符。

将PromptChar设置为(“”)不起作用。将它设置为零宽度空间(\ u200B)似乎有效,但是当掩码达到一定长度时会发生奇怪的事情(13个字符似乎是幻数)。或者最好是自己滚动?

3 个答案:

答案 0 :(得分:12)

这是一个老问题,但希望这会帮助其他人绊倒同样的问题。 对于我.net 2.0及以上版本的属性,'HidePrompt',将此设置为true隐藏提示文本,直到您单击该字段。因此,首先将提示符设置为空格“”,然后将“InsertKeyMode”更改为“Insert”,然后将“HidePrompt”设置为True。将提示字符更改为空格可防止在用户单击时显示提示,hideprompt通常会隐藏它,并且插入模式将用户带到字段的开头,而不是允许用户在提示的中间单击字符字段。

答案 1 :(得分:1)

如果只是使用文本框然后使用正则表达式(或其他一些验证过程)来验证控件失去焦点时文本是否有效。或者,如果这是一个Window的应用程序,请跳转TextChanging事件(或KeyPress)并停止实际进入输入的任何无效字符。

这也可以在网页的javascript中完成。

答案 2 :(得分:0)

你检查了属性CutCopyMaskFormat吗?

它似乎设置为:IncludePromptIncludePromptAndLiterals