Использование панели инструментов UserForm
При работе с формами в редакторе Visual Basic очень удобной оказывается панель инструментов UserForm. Если эта панель инструментов на экране не видна, отобразите ее, щелкнув правой кнопкой мыши в любой из видимых панелей инструментов и выбрав UserForm в появившемся меню. На рис. 10.7 панель инструментов UserForm показана как свободно перемещаемая панель.
Рис. 10,7. Панель инструментов UserForm предлагает кнопки для часто используемых команд форматирований элементов управления
Кнопки панели инструментов UserForm соответствуют пунктам меню Format. Некоторые из этих кнопок комбинированные - справа от них видны небольшие направленные вниз стрелки, раскрывающиеся в списки опций. Если щелкнуть на главной части такой кнопки.
VBA немедленно активизирует опцию, выбранную последней. Чтобы выбрать другую опцию, щелкните на маленькой стрелке и выберите опцию из появившегося списка.
Выбрать с помощью мыши сразу несколько элементов управления просто, но этот метод оказывается не идеальным в том случае, когда приходится постоянно работать с одним и тем же набором элементов управления как с отдельной единицей. Объединив все эти элементы управления в группу, вы избавляетесь от необходимости выбирать все эти элементы управления каждый раз, когда приходится с ними что-то делать, и тем самым исключаете возможные при таком выборе ошибки. На рис. 10.8 показаны примеры сгруппированных наборов элементов управления.
Рис. 10.8. Несколько групп элементов управления. Обратите внимание, что прямоугольники выделения охватывают все элементы управления в группе
Создать группу несложно.
1. Выделите все элементы управления, которые должны войти в группу.
2. Щелкните на кнопке Group (Сгруппировать) панели инструментов UserForm или выберите Format=Group из меню.
Группировка позволяет применять команды форматирования сразу ко всем элементам группы одновременно. Например, если необходимо выровнять расстояния между тремя рядами кнопок, сгруппируйте кнопки по рядам, выделите все три образовавшиеся группы и выберите Horizontal Spacing=Make Equal из меню (подробнее об этом - ниже в разделе "Выравнивание горизонтальных и вертикальных расстояний").
Хотя лучше всего не перекрывать одни элементы управления другими, это бывает необходимым, когда содержимое формы должно меняться в процессе выполнения программы.
При этом, если правильно установить значения свойства Visible элементов управления, программа в каждый конкретный момент времени может оставлять невидимыми все перекрывающиеся элементы управления, кроме одного.
Но в окне редактора Visual Basic все элементы управления всегда видимы - разве что какой-нибудь из них полностью закрыт другими элементами управления в форме. Если такое случилось, используйте команды Order (Упорядочить) из меню Format, чтобы переупорядочить элементы управления.
Вот рекомендации по поводу использования команд Order.
* Если можно добраться хотя бы до небольшого кусочка спрятанного элемента управления, щелкните на нем, чтобы выделить его, а затем выберите Format=Order=Bring to Front (Формат= Упорядочить= На передний план), чтобы элемент управления оказался поверх других.
* Если нужный вам элемент управления полностью закрыт другими элементами управления, выделите самый верхний из них и отправьте его под все остальные, выбрав Format=Order=Send to Back (Формат=Упорядочить=На задний план). Повторяйте эту операцию до тех пор, пока нужный вам элемент управления не окажется наверху.
* Если вы специально разместили элементы управления так, чтобы во время выполнения программы они пересекались, используйте команды Format=Order=Bring Forward (Формат=Упорядочить=Переместить вперед) и Format=Order=Bring Backward (Формат=Упорядочить=Переместить назад), чтобы разместить пересекающиеся элементы управления так, как вам нужно. Эти команды перемещают элемент управления в стопке на одну позицию вперед или назад.
Одновременное форматирование нескольких элементов управления
Многие команды меню Format предназначены для работы сразу с несколькими элементами управления или с несколькими группами элементов управления. Все эти команды будут обсуждаться в данном разделе, но сначала давайте поговорим о том, какой из нескольких выделенных элементов оказывается важнее.
Нет, этот раздел не отступление от темы ради развлечения или каприза. Для некоторых команд форматирования, предназначенных для работы сразу с несколькими элементами управления, один из элементов управления служит отправной точкой для выполняемой команды. На жаргоне VBА такой элемент управления называется доминирующим элементом управления.
Когда используется команда Format=Make Same Size (Формат= Сделать одного размера), например, чтобы получить набор элементов управления одного размера, VBA копирует размеры (высоту, ширину или оба значения) доминирующего элемента управления для остальных выделенных элементов управления. То же самое происходит и для команды Align (Выровнять)- другие элементы управления выравниваются по доминирующему элементу управления, который остается на месте. Результат выполнения команд Horizontal Spacing
(Расстояние по горизонтали) и Vertical Spacing (Расстояние по вертикали) из меню Format тоже зависит от того, какой элемент управления доминирует.
На рис. 10.9 видно, что только у одного из выделенных элементов управления маркеры изменения размеров - белые. Это - доминирующий элемент управления, признаком которого как раз и служат белые маркеры. Другие выделенные элементы управления окружены черными маркерами.
Рис. 10.9. Элемент управления, вокруг которого видны белые маркеры изменения размеров, является доминирующим элементом управления
Вы уже знаете, что выделить группу элементов управления можно двумя способами: охватывая элементы управления прямоугольником выделения с помощью перетаскивания, предварительно выбрав пиктограмму стрелки в панели элементов управления, либо выполняя <Shift+щелчок> или <Ctrl +щелчок> на каждом из элементов управления по одному. Следующая таблица поясняет, как при этом выбрать доминирующий элемент управления.
Стратегия выделения элементов управления | Техника выбора доминирующего элемента |
Выбор доминирующего элемента при выделении с помощью перетаскивания выделяющего прямоугольника |