4. Сгруппируйте выделенные элементы управления (т.е. активизируйте команду
Group (Сгруппировать)).
5. Активизируйте команду Center in Form Horizontally (Центрировать в форме по горизонтали).
В вышеприведенной инструкции предполагалось равномерно распределить элементы управления по горизонтали. Чтобы распределить их равномерно по вертикали, выберите в пп. 2, 3 и 5 версии команд, соответствующие действиям по вертикали.
Дополнительно о работе с элементами управления
В главе 10 вы познакомились с наиболее важными элементами управления и их использованием. В настоящем разделе я дам вам дополнительные советы о работе с отдельными типами элементами управления, а также расскажу об элементах управления, которым не нашлось места в главе 10.
Советы об использовании текстовых полей
Как основные элементы для отображения и ввода данных, текстовые поля заслуживают особого внимания, поэтому я рассматриваю их в настоящем разделе.
Как и надписи, текстовые поля могут содержать сообщения, которые вы адресуете пользователям. Однако обычно пользователь может изменять текст, отображаемый в текстовом поле. Если вы не хотите, чтобы пользователь изменял текст ваших сообщений, обязательно присвойте свойству Locked текстового поля значение True. Только имейте в виду, что пользователи все равно могут скопировать текст в буфер обмена, чего они не в состоянии сделать с текстом надписей. Вы можете предотвратить это, присвоив свойству Enabled значение False, однако в этом случае текст будет отображаться затененным.
Вы можете даже придать текстовому полю вид стандартной надписи, придав его свойству BackColor значение, соответствующее цвету форму, а свойству Special Effect - значение 0, чтобы сделать его "плоским".
Что такое секретный пароль?
Пароли используются для защиты важных данных от неавторизированного копирования, а также для того, чтобы создать у людей впечатление, что они действительно получат какие-то чрезвычайно важные сведения, если уж им предлагают ввести пароль. Какая бы из этих причин вам ни понравилась, создать текстовое поле VBA, предназначенное для ввода пароля, совсем несложно.
При выбранном текстовом поле в редакторе Visual Basic найдите свойство PasswordChar в диалоговом окне свойств, после чего введите подстановочный символ, который будет отображаться в текстовом поле (например, !) вместо символов, действительно вводимых пользователем. Текстовое поле все равно позволяет считывать введенные данные, но делать это может только программа (рис. 19.6).
Рис. 19.6. В этом текстовом поле вместо вводимых символов отображаются только восклицательные знаки
Конечно же, само по себе требование пароля не позволит защитить ваши данные. Сами данные и список паролей доступа должны быть зашифрованы, а ваша программа должна расшифровать данные в том случае, если пользователь ввел правильный пароль.
Использование многострочных текстовых полей
Для того чтобы данные в текстовом поле отображались корректно, текст понадобится разбить на несколько строк, поэтому вы должны присвоить свойству MultiLine значение True. В противном случае, даже если значение свойства WrapText равно True, весь текст будет размещен в одной строке, выходя за границы текстового поля.
Текст, который VBA для вашего удобства разделяет на несколько строк, на самом деле сохраняется в виде одной строки. Однако многострочные текстовые поля также позволяют пользователю начать "настоящую" новую строку с помощью, либо комбинации клавиш <Ctrl+Enter>, либо присвоения свойству Enter KeyBehavior значения True и нажатия клавиши <Enter>. Это позволит вам создать разрыв строки раньше, чем это автоматически сделает за вас VBA.
Если вы программист (а не пользователь программы), разместите текст в текстовом поле, после чего вы решайте, где ставить точки разрыва строк, Используйте любой из следующих двух методов.
* Если вы проектируете форму, щелкните на элементе управления два раза (но не дважды!), чтобы отобразить точку вставки. После этого воспользуйтесь комбинацией клавиш <Shift+Enter> для начала новой строки.
* В программном коде присвоите текст свойству Value элемента управления, используя строковые значения, объединенные с помощью символа возврата каретки.
На рис. 19.7 приведено несколько примеров использования свойств Wordwrap и MultiLine.
Рис, 19.7. В диалоговом окне вы видите свойства Wordwrap и MultiLine в действии
Какими бы ни были значения свойств MultiLine, Wordwrap или Enter KeyBahavior, в текстовом поле отображается не больше определенного количества текста. Хотя пользователь всегда может прокрутить содержимое текстового поля с помощью клавиш со стрелками, вам следует добавить полосы прокрутки к текстовому полю, присвоив свойству Scroll Bars значение fraScroll Bars Both. VBA достаточно сообразителен, чтобы отобразить полосы прокрутки только в том случае, если текстовое поле не в состоянии отобразить все содержимое сразу.
Создание форм с несколькими вкладками
Если вам необходимо работать с таким количеством элементов управления, что они просто не помешаются в одной форме, использование второй формы оказывается не самым лучшим решением проблемы. Вместо этого вы можете просто распределить все необходимые элементы управления по нескольким вкладкам формы.
Использование нескольких вкладок позволяет значительно "разгрузить" форму, что достаточно часто используется в диалоговых окнах различных Windows-приложений, как показано на рис. 19.8. Каждая вкладка, содержащая элементы управления, действует независимо от других. Элементы управления, которые вы добавляете на вкладку, связываются только с ней; вы сможете увидеть эти элементы управления только при отображенной соответствующей вкладке. Для отображения другой вкладки просто шелкните на ее "ярлыке" в верхней части формы.
Рис. 19.8. Форш, содержащая несколько вкладок с элементами управления
При проектировании отдельных вкладок формы выполняйте те же самые действия, что и при проектировании формы без вкладок: щелкните на нужном элементе управления в диалоговом окне Toolbox; затем перетащите принявший особый вид указатель мыши по диагонали, чтобы задать необходимый размер элемента управления. Форма со вкладками всегда содержит не меньше двух вкладок.
Форма, содержащая несколько вкладок, обладает определенными свойствами, точно так же, как и каждая ее отдельная вкладка. Если вам необходимо поработать с этими свойствами, вы должны твердо знать, что выбрали нужный элемент.
Свойства формы отображаются в диалоговом окне свойств сразу после того, как вы ее выделите. После этого, щелкнув на одной из вкладок, вы отображаете свойства именно ее. Для перехода к другой вкладке щелкните на ее ярлычке. Для вьщеления всей формы щелкните на ее строке заголовке или же воспользуйтесь раскрывающимся списком диалогового окна свойств.
Для добавления кнопок, рамок и других элементов управления на вкладку формы просто перетащите их на соответствующую вкладку. Однако не забудьте перед тем, как перетаскивать элементы управления, выбрать соответствующую вкладку.
Для добавления новой вкладки в форму выполните следующие действия.
1. Щелкните правой кнопкой на вкладках формы.
2. Выберите команду New Page из появившегося контекстного меню.
Удалить существующую вкладку также несложно, только удостоверьтесь в том, что вы удаляете нужную вкладку: редактор Visual Basic делает это немедленно, не задавая никаких вопросов о подтверждении подобных действий, а команда Undo в подобных ситуациях не работает. Для продолжения щелкните на вкладке правой кнопкой мыши и из появившегося контекстного меню выберите команду Delete Page.
Для изменения заголовка вкладки измените подпись к ней. Это можно сделать, или введя новый текст в поле Caption диалогового окна свойств, или щелкнув правой кнопкой мыши на ярлыке вкладки и выбрав из появившегося контекстного меню команду Rename для отображения соответствующего диалогового окна. В этом диалоговом окне вы сможете указать новый текст надписи.
Пусть вас не пугает слово Rename (Переименовать): вы действительно изменяете подпись к вкладке, а не ее имя (для изменения имени вкладки вам следует использовать диалоговое окно свойств). В любом случае, диалоговое окно Rename также позволит вам выбрать быструю клавишу и ввести текст подсказки. Вы можете изменить оба этих элемента с помощью диалогового окна свойств.
Для изменения порядка следования вкладок формы выберите команду Move из контекстного меню, отображаемого после щелчка правой кнопкой мыши на ярлычке вкладки. В диалоговом окне, показанном на рис. 19.9, щелкните на имени вкладки, расположение которой вы хотите изменить, после чего воспользуйтесь кнопками Move Up (Вверх) и Move Down (Вниз) для изменения расположения выбранной вкладки по отношению к другим.
Рис. 19.9. Изменение порядка следования вкладок формы