VBA для чайников
Шрифт:
2. Выделите эти элементы управления и активизируйте команду Align=Tops
(Выровнять=По верху) или любую другую команду выравнивания по горизонтали.
3. Оставив все элементы управления выделенными, активизируйте команду
Horizontal Spaclng=Make Equal (Расстояние по горизонтали = Сделать одинаковым).
4. Сгруппируйте выделенные элементы управления (т.е. активизируйте команду
Group (Сгруппировать)).
5. Активизируйте команду Center in Form Horizontally (Центрировать в форме по горизонтали).
В вышеприведенной инструкции предполагалось равномерно распределить
Дополнительно о работе с элементами управления
В главе 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. Каждая вкладка, содержащая элементы управления, действует независимо от других. Элементы управления, которые вы добавляете на вкладку, связываются только с ней; вы сможете увидеть эти элементы управления только при отображенной соответствующей вкладке. Для отображения другой вкладки просто шелкните на ее "ярлыке" в верхней части формы.