Visual studio textbox маска ввода
Для ввода и редактирования текста предназначены текстовые поля - элемент TextBox. Так же как и у элемента Label текст элемента TextBox можно установить или получить с помощью свойства Text.
По умолчанию при переносе элемента с панели инструментов создается однострочное текстовое поле. Для отображения больших объемов информации в текстовом поле нужно использовать его свойства Multiline и ScrollBars . При установке для свойства Multiline значения true, все избыточные символы, которые выходят за границы поля, будут переноситься на новую строку.
Кроме того, можно сделать прокрутку текстового поля, установив для его свойства ScrollBars одно из значений:
None : без прокруток (по умолчанию)
Horizontal : создает горизонтальную прокрутку при длине строки, превышающей ширину текстового поля
Vertical : создает вертикальную прокрутку, если строки не помещаются в текстовом поле
Both : создает вертикальную и горизонтальную прокрутку
Автозаполнение текстового поля
Элемент TextBox обладает достаточными возможностями для создания автозаполняемого поля. Для этого нам надо привязать свойство AutoCompleteCustomSource элемента TextBox к некоторой коллекции, из которой берутся данные для заполнения поля.
Итак, добавим на форму текстовое поле и пропишем в код события загрузки следующие строки:
Режим автодополнения, представленный свойством AutoCompleteMode , имеет несколько возможных значений:
None : отсутствие автодополнения
Suggest : предлагает варианты для ввода, но не дополняет
Append : дополняет введенное значение до строки из списка, но не предлагает варианты для выбора
SuggestAppend : одновременно и предлагает варианты для автодополнения, и дополняет введенное пользователем значение
Перенос по словам
Чтобы текст в элементе TextBox переносился по словам, надо установить свойство WordWrap равным true . То есть если одно слово не умещается на строке, то но переносится на следующую. Данное свойство будет работать только для многострочных текстовых полей.
Ввод пароля
Также данный элемент имеет свойства, которые позволяют сделать из него поле для ввода пароля. Так, для этого надо использовать PasswordChar и UseSystemPasswordChar .
Свойство PasswordChar по умолчанию не имеет значение, если мы установим в качестве него какой-нибудь символ, то этот символ будут отображаться при вводе любых символов в текстовое поле.
Свойство UseSystemPasswordChar имеет похожее действие. Если мы установим его значение в true , то вместо введенных символов в текстовом поле будет отображаться знак пароля, принятый в системе, например, точка.
Событие TextChanged
Из всех событий элемента TextBox следует отметить событие TextChanged , которое срабатывает при изменении текста в элементе. Например, поместим на форму кроме текстового поля метку и сделаем так, чтобы при изменении текста в текстовом поле также менялся текст на метке:
Элемент управления "Замаскированное текстовое поле" — это расширенный элемент управления текстового поля, поддерживающий декларативный синтаксис для принятия или отклонения данных, введенных пользователем. Задав свойство Mask, можно указать допустимые данные, введенные пользователем, без написания пользовательской логики проверки в приложении. Более подробную информацию по см. в подразделе "Примечания" класса MaskedTextBox.
Установка свойства Mask вручную
Если вы знакомы с символами, поддерживаемыми свойством Mask, его можно ввести вручную. Сводка символов, поддерживаемых свойством Mask, см. в разделе "Примечания" свойства Mask.
Установка свойства Mask вручную
В конструкторе выберите MaskedTextBox.
В окне Свойства выберите свойство Mask.
Использование диалогового окна "Маска входных данных"
Диалоговое окно "Маска входных данных" предоставляет несколько готовых масок. Вы можете изменить готовые маски или ввести собственную маску вручную.
Открытие диалогового окна "Маска входных данных"
В конструкторе выберите MaskedTextBox.
Щелкните смарт-тег, чтобы открыть панель Задачи MaskedTextBox.
Нажмите Задать маску.
В окне Свойства выберите свойство Mask.
Откроется диалоговое окно Маска входных данных.
Использование диалогового окна "Маска входных данных"
(Необязательно) Щелкните одну из готовых масок в списке.
(Необязательно) Измените готовую маску в поле Маска.
(Необязательно) Введите новую маску в поле Маска. То есть вам не нужно использовать одну из готовых масок.
В поле предварительного просмотра отображаются символы, которые пользователь видит в MaskedTextBox. Эти символы помогают пользователю правильно ввести данные.
Установите или снимите флажок Использовать ValidatingType. Флажок Использовать ValidatingType указывает, используется ли тип данных для проверки вводимых пользователем данных. Дополнительные сведения см. в описании свойства ValidatingType.
Маска вводится в свойстве Mask в окне Свойства.
В данном пошаговом руководстве представлены следующие задачи.
Инициализация элемента управления MaskedTextBox
Использование обработчика событий MaskInputRejected для оповещения пользователя о несоответствии символа маске
Назначение типа свойству ValidatingType и использование обработчика событий TypeValidationCompleted для оповещения пользователя о том, что значение, которое он пытается зафиксировать, является недопустимым для типа
Создание проекта и добавление элемента управления
Добавление элемента управления MaskedTextBox в форму
Откройте форму, в которую нужно поместить элемент управления MaskedTextBox.
Перетащите элемент управления MaskedTextBox из панели элементов в свою форму.
Щелкните правой кнопкой мыши элемент управления и выберите пункт Свойства. В окне Свойства выберите свойство Mask и нажмите кнопку . (многоточие) рядом с именем свойства.
В диалоговом окне Маска ввода выберите маску Краткий формат даты и нажмите кнопку ОК.
В окне Свойства присвойте свойству BeepOnError значение true . Если свойство задано, каждый раз, когда пользователь пытается ввести символ, нарушающий определение маски, будет подаваться короткий звуковой сигнал.
Сводка символов, поддерживаемых свойством Mask, см. в разделе "Примечания" свойства Mask.
Оповещение пользователя об ошибках ввода
Добавление всплывающей подсказки для отклоненных входных данных маски
Вернитесь на панель элементов и добавьте ToolTip в форму.
Создайте обработчик событий для события MaskInputRejected, которое вызывает ToolTip при возникновении ошибки ввода. Всплывающая подсказка остается видимой в течение пяти секунд или пока пользователь не щелкнет ее.
Оповещение пользователя о недопустимом типе
Добавление всплывающей подсказки для недопустимых типов данных
В обработчике событий Load формы назначьте объект Type, представляющий тип DateTime, свойству ValidatingType элемента управления MaskedTextBox:
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает маску ввода для использования во время выполнения.
Значение свойства
Строка String, представляющая текущую маску. По умолчанию используется пустая строка, которая разрешает ввод любых символов.
Исключения
Свойству Mask передана строка, недопустимая в качестве маски. К недопустимым маскам относятся те, которые содержат непечатаемые символы.
Комментарии
Mask является свойством по умолчанию для MaskedTextBox класса.
Mask должен быть строкой, состоящей из одного или нескольких элементов маскирования, как показано в следующей таблице. Язык маскирования, используемый MaskedTextBox с его помощью, определяется связанным MaskedTextProvider. Стандартный поставщик задает язык маскирования на основе языка, используемого элементом управления "Маскированные изменения" в Visual Basic 6.0, и должен быть очень знаком пользователям, которые переходят с этой платформы.
Если маска MaskedTextBox уже содержит введенные пользователем данные, отфильтрованные по предыдущей маске, MaskedTextBox попытается перенести эти входные данные в новое определение маски. В случае сбоя он очистит существующие входные данные. Назначение строки нулевой длины, так как маска сохранит все существующие данные в элементе управления. При использовании с маской MaskedTextBox нулевой длины ведет себя как однострочный TextBox элемент управления.
Десятичные (.), тысячные (,), время (:), дата (/) и символы валюты ($) по умолчанию отображают эти символы в соответствии с языком и региональными параметрами приложения. Вы можете принудительно отобразить символы для другого языка и региональных параметров с помощью FormatProvider свойства.
Вставка символов в маску во время выполнения управляется свойством InsertKeyMode . Пользователи могут перемещаться по маске с помощью клавиш со стрелками влево и вправо или курсором мыши и пропускать необязательные позиции в маске, вводя пробел.
MaskedTextBox поддерживает все символы Юникода, за исключением суррогатов и вертикальных объединенных символов.
Элемент MaskedTextBox по сути представляет обычное текстовое поле. Однако данные элемент позволяет контролировать ввод пользователя и проверять его автоматически на наличие ошибок.
Чтобы контролировать вводимые в поле символы, надо задать маску. Для задания маски можно применять следующие символы:
0 : Позволяет вводить только цифры
9 : Позволяет вводить цифры и пробелы
L : Позволяет вводить только буквенные символы
? : Позволяет вводить дополнительные необязательные буквенные символы
A : Позволяет вводить буквенные и цифровые символы
. : Задает позицию разделителя целой и дробной части
, : Используется для разделения разрядов в целой части числа
: : Используется в временных промежутках - разделяет часы, минуты и секунды
/ : Используется для разделения дат
$ : Используется в качестве символа валюты
Чтобы задать маску, надо установить свойство Mask элемента. Найдя это свойство в окне свойств(Porperties), нажмем на него и нам отобразится окно для задания одного из стандартных шаблонов маски. В частности мы можем выбрать Phone number (Телефонный номер), который подразумевает ввод в текстовое поле только телефонного номера:
Теперь при запуске мы сможем ввести в текстовое поле только цифры, получив в итоге телефонный номер.
Теперь сделаем свою маску. Например, создадим маску для ввода инициалов имени и отчества и фамилий ограниченной длины в текстовое поле. Для этого присвоим свойству Mask значение L.L.L. . Тогда ввод в текстовое поле будет выглядеть следующим образом:
Данный элемент также представляет нам ряд свойств, которые можно использовать для управления вводом. Так, свойство BeepOnError при установке значения true подает звуковой сигнал при введении некорректного символа.
Свойство HidePromptOnLeave при установке в true при потери текстовым полем фокуса скрывает, указанные в PromptChar
Свойство PromptChar указывает на символ, который отображается в поле на месте ввода символов. По умолчанию стоит знак подчеркивания.
Свойство AsciiOnly при значении true позволяет вводить только asci-символы, то есть символы из диапазона A-Z и a-z.
Читайте также: