Программирование >>  Элементы языков с и с++ 

1 ... 120 121 122 [ 123 ] 124 125 126 ... 200


Таблица 11.4 (окончание)

1 Маскирующий 1 символ

Описание

Символ валюты

<

Преобразует все символы к нижнему регистру

>

Преобразует все символы к верхнему регистру

Запрещает влияние элементов < или >

Теряется маска-символ. Он заменяется символом-литералом (например, маска 00 0\0 заменяется на маску 0). Элемент \\ - это элемент \ для обоатного слэша

Все остальные символы

Все немаскированные символы появляются в поле ввода. Символы-литералы всегда занимают в маске статическую позицию в режиме исполнения приложения и не могут быть передвинуты или удалены пользователем

Используя маску, можно без написания специальных участков программы в приложении добиться следующего:

[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.



1 ... 120 121 122 [ 123 ] 124 125 126 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика