Рамки служит для следующих двух целей.
* Для визуального выделения группы связанных элементов управления. Это помогает понять пользователю, что эти элементы управления связаны. Также рамки позволяют разделить большие формы на несколько участков (рис. 10.17).
* Для выделения группы кнопок, из которых пользователь должен выбрать только одну.
Рис. 10.17. В данной форме используется три различные рамки для упорядочения групп кнопок
В разделе "Выбор элемента с помощью переключателя", дальше в настоящей главе, я подробно рассматриваю использование рамок. В данном разделе я коснусь основ - использования рамок для организации всех типов элементов управления.
Как только вы добавите рамку в форму, размещение любых других элементов управления в рамке свяжет их и рамку. Теперь при перемещении рамки элементы управления переместятся вместе с ней. При этом они будут занимать те же места в рамке, что и раньше.
Добавить элемент управления в рамку можно следующим образом.
* Нарисовать новый элемент управления в рамке. Создание нового элемента управления происходит обычным образом. Для этого необходимо щелкнуть на соответствующем значке в панели инструментов и затем перетянуть его на то место в форме, на котором он будет находится. В нашем случае - в рамку.
* Переместить существующий элемент управления в рамку. Перетягивайте элемент управления с помощью мыши до тех пор, пока указатель мыши не окажется в рамке. Как только вы отпустите кнопку мыши, элемент управления окажется в рамке.
После того как вы разместите элемент управления в рамке, границы рамки станут выделенными, как будто выбран данный элемент управления (рис. 10.18).
Рис. 1018. После того как вы выберете элемент управления, связанный с рамкой, данная рамка тоже будет выглядеть выбранной
Для того чтобы разорвать связь между элементом управления и рамкой, достаточно просто перетянуть данный элемент управления в другое место формы. Как только указатель мыши окажется вне границ рамки, отпустите кнопку мыши. При этом связь между элементом управления и рамкой будет разорвана, а сам элемент управления окажется в другом месте.
Теперь оба объекта (форма и элемент управления) можно перемешать отдельно.
Выбор элемента с помощью переключателя
Как в жизни, так и в программном обеспечении, есть много взаимоисключающих вариантов. Покупая мороженое, вы выбираете либо с изюмом, либо с орехами, либо в фруктами, но никогда не все три сразу. Покупая платье или брюки, вы всегда покупаете только те вещи, которые подходят вам по размеру. А когда вы собираетесь жениться на Анне, о других претендентках вы не думаете (Анна должна этому радоваться!).
В Windows для изображения взаимно исключающих вариантов выбора используются так называемые переключатели. Это небольшие круглые кнопки, которые работают как нажимные кнопки на радиоприемниках в автомобилях. Одновременно можно слушать только одну радиостанцию. На рис. 10.19 показан типичный набор переключателей.
Рис. 10.19. Переключатели в действии
Переключателей всегда должно быть несколько, но выбрать можно только один из них. Если вы выберете один из переключателей, все остальные автоматически останутся не выбранными.
Не беспокойтесь о том, как создать группу переключателей. Все, что вам необходимо сделать, - это разместить кнопки в одном месте в форме. VBA автоматически объединит их в группу. При запуске программы будет выбран только один переключатель.
А что это за странные слова: переключатели должны быть размещены "в одном месте формы"? Конечно, это не официальная терминология VBA, но можно сказать следующее: одна часть формы является самой формой. Каждая добавленная вами рамка элемента управления создаст другую часть формы. И каждая вкладка элемента управления, состоящего из нескольких вкладок, также является отдельной частью формы (о элементах управления, состоящих из нескольких вкладок, которые создаются для ноутбуков и которые похожи на обычные диалоговые окна Windows, я расскажу в главе 19). Можно разместить рамку внутри другой рамки или на вкладке элемента управления, состоящего из нескольких вкладок. Каждая вложенная рамка занимает свою часть формы.
Если в форме есть несколько рамок, VBA рассматривает переключатели, которые не находятся внутри любой рамки, как одну группу, а переключатели, находящиеся в рамке, - как отдельную группу. На рис. 10.20 видно, что я имею в виду.
Рис. 10.20. Три отдельные группы переключателей
Читать дальше