Назначение клавиш ускоренного вызова для надписей

Клавишами ускоренного вызова называются сочетания типа Alt+клавиша. Нажимая Alt вместе с подчеркнутой буквой текстового элемента, пользователь может быстро перейти к нему. Клавиши ускоренного вызова можно назначать лишь тем элементам, у которых есть свойство Caption, например кнопкам или командам меню. Многие элементы (например, текстовые поля) не имеют свойства Caption, поэтому вы не сможете быстро перейти к ним с клавиатуры — приходится перебирать элементы клавишей Tab до тех пор, пока не найдете нужный.

Возможный выход из положения заключается в том, чтобы поместить надпись перед нужным элементом. Проследите за тем, чтобы свойство Tablndex надписи было на единицу меньше свойства того элемента, к которому относится надпись. Вставьте символ «амперсенд» (&) в свойство Caption надписи перед символом, определяющим клавишу ускоренного вызова.

Продемонстрируем сказанное на примере:

1. Откройте проект Controls.vbp, если он не был открыт ранее.

2. Дважды щелкните на форме frmText в окне проекта, чтобы активизировать ее.

3. Щелкните на текстовом поле txtDisplay, расположенном в левой верхней части формы, и найдите его свойство Tablndex в окне свойств. Значение этого свойства должно быть равно 0, чтобы элемент стал первым в порядке перебора.

4. Поместите на форму надпись и расположите ее над полем txtDisplay. В окне свойств задайте ее свойству Name значение IblDisplay. Задайте свойству Caption значение Dis&play. He забудьте про амперсенд перед буквой Р.

5. Свойство Tablndex надписи IblDisplay должно иметь значение 11. Установите его значение в 0.

6. Запустите программу командой Run > Start.

7. На форме Control Example нажмите кнопку Text Button.

8. На форме Text Box Properties нажмите кнопку Reset, чтобы убрать фокус с поля txtDisplay.

9. Нажмите клавишу Alt и, не отпуская ее, клавишу Р.

Если теперь одновременно нажать Alt и подчеркнутую букву, фокус перейдет к надписи. Тем не менее при просмотре свойств, событий и методов надписей (см. далее) оказывается, что у надписей нет свойства TabStop, событий GotFocus или LostFocus или метода SetFocus. Это означает, что передать фокус надписи невозможно, следовательно, при передаче фокуса надписи с клавишей ускоренного вызова на самом деле фокус передается следующему элементу.

Свойства надписей

Мы уже встречались с некоторыми свойствами надписей. Ниже перечислены все свойства этого элемента:

 

Alignment DataSource Height Parent
Appearance DragIcon Index RightToLeft
AutoSize DragMode Left Tablndex
BackColor Enabled Linkltem Tag
BackStyle Font LinkMode ToolTipText
BorderStyle FontBold LinkNotify Top
Caption FontItalic LinkTimeout UseMnemonic
Container FontName LinkTopic Visible
DataChanged FontSize MouseIcon WhatsThisHelpID
DataField FontStrikethru MousePointer Width
DataFormat FontUnderline Name Wordwrap
DataMember ForeColor OLEDropMode  

 

На всякий случай напомню, что самым важным свойством из всего набора (как обычно) является свойство Name. Для имен надписей обычно используется префикс 1bl. Свойство Caption определяет текст, который содержится в надписи. Если в нем встречается амперсенд (&), создается клавиша ускоренного вызова. Возникает интересный вопрос — а что произойдет, если амперсенд должен присутствовать в тексте надписи? Амперсенд не отображается на экране; он остается скрытым, а следующий за ним символ подчеркивается.

 

ПОДСКАЗКА Если вы хотите, чтобы амперсенд присутствовал в тексте надпи-си, задайте свойству UseMnemonic значение False (по умолчанию оно имеет значение True). Под «мнемоникой» (mnemonic) в данном контексте понимаются клавиши ускоренного доступа.

 

Размеры надписи задаются в режиме конструирования. Если изменить свойство Caption в режиме выполнения, может оказаться, что текст слишком велик и не помещается внутри элемента. Можно вычислить длину текста и изменить размеры надписи в соответствии с ней, однако это довольно хлопотно, к тому же увеличенная надпись может закрыть другие элементы. Чтобы упростить задачу, воспользуйтесь свойствами AutoSize или Wordwrap совместно или по отдельности. В этом случае текст заведомо помещается внутри надписи, и к тому же вы можете распорядиться, чтобы надпись увеличивалась по вертикали, а не по горизонтали.

У надписей имеется еще одно интересное свойство — BorderStyle. He путайте его с одноименным свойством форм, в данном случае свойство может принимать всего два значения. Если установить значение свойства BorderStyle в 1 — Fixed Single, a BackColor — в белый (или любой другой) цвет, надпись будет выглядеть как текстовое поле, но останется доступна только для чтения. Надписи часто используются подобным образом для отображения данных, которые не могут изменяться пользователем.

 

События надписей

Многие события надписей уже знакомы нам по другим элементам:

Список включает многие стандартные события. Обратите внимание на то, что в нем отсутствуют события Key..., — это объясняется тем, что надпись не может получить фокус. События Mouse,., поддерживаются, потому что ничто не мешает вам щелкнуть на надписи во время выполнения программы. Хотя вы можете щелкнуть на элементе, это еще не значит, что ему будет передан фокус. События Link... отсутствуют почти во всех элементах, за исключением текстовых и графических полей. Эти события относятся к обмену данными через DDE (протокол динамического обмена данными). События Key... и Mouse... рассматриваются в уроке 11, «Работа с мышью».

 

Change LinkClose MouseMove OLEGiveFeedback
Click LinkError MouseUp OLESetData
DblClick LinkNotify OLECompleteDrag OLEStartDrag
DragDrop LinkOpen OLEDragDrop  
DragOver MouseDown OLEDragOver  

Методы надписей

У надписей тоже есть свои методы, но, скорее всего, вам почти не придется пользоваться ими. Ниже перечислены все методы надписей.

 

Drag LinkRequest OLEDrag ZOrder
LinkExecute LinkSend Refresh  
LinkPoke Move ShowWhatsThis  

 

Методы надписей не приносят особой пользы, хотя метод LinkRequest иногда применяется для обновления неавтоматических DDE-связей.

 

Работа с надписями

Надписи обладают ограниченными возможностями, так что придумать оригинальный пример будет довольно трудно. Мы разместим надпись на главной форме проекта Controls, который использовался в предыдущих примерах:

1. Дважды щелкните на форме frmMain в окне проекта, чтобы активизировать ее.

2. Поместите надпись в нижнюю часть формы. Растяните ее почти на всю ширину формы.

3. Задайте ее свойству Name значение lblHelp, а в свойство Caption занесите текст

Нажмите кнопку для вызова тестового приложения.

4. На рис. 3.5 показано, как выглядит главная форма приложения после запуска.

Рис. 3.5. Надпись на форме

 

Переключатели

Переключатели (см. рисунок) позволяют выбрать один (и только один!) вариант из группы. Обычно они группируются в рамках (см. далее в этой главе), однако их также можно группировать прямо на форме, если используется только одна группа переключателей. Например, если рамка служит для выбора способа доставки, в ней может находиться один переключатель для UPS (United Parcel Service) и другой — для курьерской почты. Товар может быть доставлен лишь одним из этих способов (но не двумя сразу). С другой стороны, создавать переключатели для выбора начертания текста (полужирный, курсив) было бы бессмысленно -текст может быть полужирным и курсивным или не быть ни тем, ни другим.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: