Скрытие PromptChar для .NET MaskedTextBox - PullRequest
4 голосов
/ 22 сентября 2009

Есть ли способ использовать MaskedTextBox без отображения PromptChar? Я хотел бы указать маску для проверки ввода, но я не хочу, чтобы какие-либо символы подсказок занимали место в режиме редактирования.

Причина этого в том, что когда я хочу принять свободный текст с ограниченным набором символов, все символы являются необязательными буквенно-цифровыми цифрами. У меня проблема в том, что, когда я выделяю весь текст, выделяются даже символы подсказки.

Установка PromptChar в ("") не работает. Установка его в пространство нулевой ширины (\ u200B), кажется, работает, но странные вещи случаются, когда маска достигает определенной длины (13 символов кажутся магическим числом). Или лучше просто свернуть мою?

Ответы [ 3 ]

12 голосов
/ 23 марта 2012

Это старый вопрос, но, надеюсь, это поможет другим споткнуться о той же проблеме. Для меня в .net 2.0 и выше есть свойство «HidePrompt», установка которого в true скрывает текст приглашения, пока вы не нажмете на поле. Итак, сначала установите символ подсказки на пробел "", а затем измените «InsertKeyMode» на «Вставить», а затем установите «HidePrompt» на «Истина». Изменение символа подсказки на пробел препятствует отображению подсказки, когда пользователь нажимает на нее, hideprompt скрывает ее в целом, а режим вставки переводит пользователя в начало поля вместо того, чтобы позволить им щелкнуть в середине подсказки символьное поле.

1 голос
/ 22 сентября 2009

Как насчет того, чтобы просто использовать текстовое поле, а затем использовать регулярное выражение (или какой-либо другой процесс проверки), чтобы убедиться, что текст действителен, когда элемент управления теряет фокус. В качестве альтернативы, если это приложение Window, перейдите к событию TextChanging (или KeyPress) и остановите любые недопустимые символы, попадающие во входные данные.

Это также можно сделать в javascript для веб-страницы.

0 голосов
/ 22 сентября 2009

Вы проверили свойство CutCopyMaskFormat?

похоже, что он установлен на IncludePrompt или IncludePromptAndLiterals.

...