public MainWindow() {
InitializeComponent();
CreateLabelControl();
CenterToScreen();
}
В отличие от большинства других элементов, элементы управления Label не могут получать фокус ввода при переходах по клавише табуляции. Однако в .NET 2.0 для любого элемента управления Label можно создать мнемонические клавиши установив для свойства UseMnemonic значение true (именно это значение устанавливается для данного свойства по умолчанию). После этого в свойстве Text надписи можно (с помощью символа амперсанда &) определить комбинацию клавиш для перехода к соответствующему элементу управления.
Замечание.Порядок переходов по табуляции подробнее будет обсуждаться позже, а пока что достаточно заметить, что порядок данного элемента управления при переходах по клавише табуляции устанавливается с помощью свойства TabIndex. По умолчанию значение TabIndex элемента управления соответствует порядку, в котором элементы добавлялись в окно проектирования формы. Поэтому, если вы сначала добавите Label, а затем – Textbox, то для Label значение TabIndex будет установлено равным 0, а для Textbox – равным 1.
Для примера с помощью окна проектирования формы постройте пользовательский интерфейс, состоящий из трех Label и трех Textbox (рис. 21.3). Не забудьте оставить свободное место в верхней части формы для отображения элемента Labels динамически создаваемого в методе CreateLabelControl(), и обратите внимание на то, что здесь каждая надпись содержит подчеркнутую букву. Так выделяются буквы, которые в значении свойства Text надписи были помечены знаком &. Вы, наверное, знаете, что помеченные знаком & символы обеспечивают возможность активизации элемента пользователем с помощью выбора комбинации клавиш ‹Alt+ помеченный символ›.
Рис. 21.3. Назначение мнемоник элементам управления Label
Запустив проект, вы сможете перейти к любому из имеющихся элементов TextBox, используя ‹Alt+n›, ‹Alt+M› или ‹Alt+T›.
В отличие от элемента управления Label, элемент управления TextBox (текстовое окно) обычно не является доступным только для чтения (хотя его можно сделать таким, если установить для свойства ReadOnly значение true) и часто используется как раз для того, чтобы позволить пользователю ввести текстовые данные для обработки. Тип TextBox можно настроить на поддержку одной строки текста или множества строк, его можно настроить на маскировку вводимых символов (например, с помощью звездочки, *) и в случае многострочного ввода этот элемент может содержать полосы прокрутки. Вдобавок к возможностям, унаследованным от базовых классов, TextBox определяет несколько своих интересных свойств (табл. 21.2).
Таблица 21.2. Свойства TextBox
Свойство |
Описание |
AcceptsReturn |
Читает или задает значение, являющееся индикатором необходимости перехода на новую строку при нажатии ‹Enter› в элементе управления TextBox, допускающем многострочный ввод (иначе нажатие ‹Enter› активизирует кнопку формы, используемую по умолчанию) |
CharacterCasing |
Читает или задает значение, указывающее необходимость изменения элементом управления TextBox регистра символов при их вводе |
PasswordChar |
Читает или задает символ, применяемый для маскировки вводимых символов в однострочном элементе управления TextBox, используемом для ввода паролей |
ScrollBars |
Читает или задает значение, указывающее необходимость наличии полос прокрутки в элементе управления TextBox, допускающем многострочный ввод |
TextAlign |
Читает или задает значение, соответствующее одному из значений перечня HorizontalAlignment и указывающее правила выравнивания текста в элементе управления TextBox |
Чтобы продемонстрировать некоторые возможности TextBox, поместите в форму три элемента управлений TextBox. Первый элемент TextBox (с именем txtPassword) следует настроить для ввода пароля, т.е. символы, вводимые в поле TextBox, не должны быть видимыми, а вместо них должны появляться символы, заданные значением свойства PasswordChar.
Второй элемент TextBox (с именем txtMultiline) – это окно многострочного текста, которое должно допускать обработку нажатия.клавиши ввода и отображать вертикальную полосу прокрутки, когда введенный текст не умещается в рамках видимого пространства TextBox. Наконец, третий элемент TextBox (с именем txtUppercase) будет настроен на перевод введенных символьных данных в верхний регистр.
Сконфигурируйте каждый элемент TextBox соответствующим образом с помощью окна свойств, используя в качестве руководства следующий фрагмент реализации InitializeComponent().
Читать дальше