|
Программирование >> Элементы языков с и с++
Используя маску, можно без написания специальных участков программы в приложении добиться следующего: [D вводить символы заданного типа и никакие другие (например, только цифры); I ] обеспечить обязательный ввод символов в поле ввода; 13 за счет ввода в маску специальных символов-литералов, которые будут составлять неотъемлемую часть введенной строки, обеспечить ускорение ввода информации для пользователя (например, дефис в телефонном номере, точки в дате, знак валюты в цене и др.); ] задавать специальный ввод, когда будут автоматически преобразованы, например, символы нижнего регистра в верхний и т. д. IВ маске содержится символ-подсказка (он задается в свойстве Promptchar), наместо которого пользователь должен вводить символы-данные. Например, маска даты может иметь вид: Здесь символом-подсказкой является подчеркивание, а символом-Литералом- точка. Вместо символа-подсказки надо вводить цифры даты (например, 29.12.2007). Точку (символ-литерал) вводить не надо - она автоматически пропускается при наборе цифр. Рассмотрим свойства MaskedTextBox (их перечень показан на рис. 11.70). □ Promptchar- предоставляет возможность задавать свой собственный символ маски. Вместо подчеркивания можно задать, например, символ *. Тогда маска даты станет выглядеть так: Это будет более на- глядно, т. к. знак подчеркивания сливается в сплошную линию. П HidePromptOnLeave- предоставляет возможность видеть символы-литералы даже в то время, когда сам компонент теряет фокус ввода. Ввод по маске осуществляется так: действительно вводимые символы заменяют собой символы маски, а постоянно заданные символы (например, точки в дате) пропускаются, когда указатель ввода в поле доходит до них. Система просто передвигает указатель ввода на следующий символ-подсказку. Если же пользователь вводит запрещенный маской символ, то возникает событие MaskinputRejected (отвергнутый маской ввод), позволяющее в его обработчике осуществить какую-то пользовательскую реакцию. Properties maskedTeMtBoxl System.Windows. - Profmrtles i maskedTextBoxl System.Windows. (AoptcationSettlnes) l±l В (DataBindings) (Name) AccessibleDescription AccessibleName AccessbleRole AllowDrop AilowPromptAsInput Anchor AsciiOniy BaclColor BeepOnError BorderStyle CausesValidation ContextMenuStrip Culture Cursor CutCopyMaskformat IndudeLiteral: Dock None Enabled True В Font Microsoft San FnrpTnlnr ШЯ UinHniw (ApplicationSettings) maskedTcK Default False True Top, Left False I I Window True FixedSD True (none) Russian (Russ IBeam 11 и ForeColor GenerateMember HidePromptOnLeave HideSelection ImeMode InsertKeyMode l±l Location Locked El Margin Mask В MaxJmumSize В MinimumSize Modifiers PasswordChar PromptCfiar Readonly RejectlnputOnFirstFa False ResetOnPrompt True ResetOnSpace True RightToLeft No ;hnrroJFrvJ>Ui . Triip Font Microsoft Q Window-True True True NoControl Default 49; 30 False 3; 3; 3; 3 00/00/OOOC 0;0 Private False I maskedTextBoxl System.Windows. I в MinimumSize Modifiers PasswordChar ProinJtChar Readonly 0:0 Private False RejectlnputOnFirstFa False ResetOnPrompt ResetOnSpace Wehtlcieft True True No True 100; ZO True 0 True ShortcutsEnabled В Size SkjpUterals Tablndex TabStop Tag Text TextAlign TextMaskformat UseSystemPasswordC False UseWaitCursor False Visible True Left IndudeLiteri RightToLeft Рис. 11.70. Свойства MaskedTextBox ШИСТИ1 1НГ11.9 livate: System::Void maskedTextBoxl KeyDovm(System::Object sender, Btem:: Windows: : Forms: : KeyEventArgs e) if(e->KeyCode Keys:: Enter) \{ if (this->maskedTextBoxl->MaskFull false) MessageBox::Show( Дата введена не полностью , Приложение 56 , sageBoxButtons: :OK,MessageBoxIcon: :Asterisk) ; return; this->textBoxl->Text=this->maskedTextBoxl->Text; 0102123 buttoni S! Приложение 56 \IJ Дата ввелена не полностью Рис. 11.71. Контроль на полноту ввода по маске 3 Text- возвращает строку, введенную по маске. ] TextMaskFormat - Определяет, как символы-литералы и подсказка взаимодействуют, когда генерируется форматная строка (т. е. строка, введен- HaskFull - позволяет проверить, все ли требуемые символы маски введены (например, вы вводили дат> и не заметили, что вместо восьми символов ввели только семь - при большой скорости ввода это всегда может произойти). Поэтому этот момент надо программно контролировать. Пример задания такого контроля показан на рис. 11.71, текст обработчика- в листинге 11.9.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |