русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Пользовательские формы и диалоговые окна


Дата добавления: 2015-06-12; просмотров: 4037; Нарушение авторских прав


Приложения используют диалоговые окна, когда от пользователя требуется ввести информацию для выполнения приложением различных задач. Диалоговое окно можно создать на основе пользовательской формы.

Средства VBA позволяют создавать формы. Для создания формы в меню Вставка Редактора Visual Basic нужно выбрать команду UserForm. После ее выполнения появится пустая форма и панель инструментов «Панель элементов» с набором элементов управления, которые могут быть размещены на форме (рис. 2).

Элементы управления используются для придания форме функциональных возможностей. Элементы управления могут быть различными по сложности, начиная с простых командных кнопок и до элементов управления мультимедиа.

Стандартными элементами управления VBA являются следующие элементы: Надпись (Label), Поле (TextBox), Поле со списком (ComboBox), Список (ListBox), Флажок (CheckBox), Переключатель (OptionButton), Выключатель (ToggleButton), Рамка (Frame), Кнопка (CommandButton), Набор вкладок (TabStrip), Набор страниц (MultiPage), Полоса прокрутки (ScrollBar), Счетчик (SpinButton), Рисунок (Image).

Для добавления элемента в пользовательскую форму его нужно выделить на панели элементов и с помощью мыши разместить в нужном месте формы, «вытянув» до необходимого размера.

Для установки свойств элементов управления вручную необходимо выделить элемент управления и открыть окно свойств через меню Вид (если оно закрыто).

Пользовательские формы позволяют построить управляемый событиями интерфейс приложения. В таком приложении пользователь управляет его работой, нажимая кнопки или клавиши, а программа реагирует на возникающие при этом события.

Просмотреть список событий для выделенного элемента формы можно, выбрав команду Программав меню Вид и раскрыв список процедур справа вверху (слева показано имя выделенного элемента). После этого появится список событий для выделенного элемента.



После выбора события из списка Редактор VBA автоматически создаст заготовку процедуры обработки этого события. Двойной щелчок по нужному элементу на форме приводит к созданию заготовки процедуры обработки события по умолчанию (для командной кнопки, например, это событие Click).

Процедуры обработки событий являются скрытыми (Private), т.е. могут запускаться только из пользовательской формы, которая их содержит, они используются только для определения реакции на события ля данного элемента управления, поэтому им назначаются имена вида ИмяЭлементаУправления_Событие. Процедура обработки события запускается автоматически, как только происходит соответствующее событие.

Хотя все объекты элементов управления имеют свой собственный уникальный набор свойств, методов и событий, существует и общий набор свойств и события, применимый ко всем элементам:

- общие свойства:

- Name – имя элемента управления, по которому на него производится ссылка в коде;

- AutoSize – если это свойство установлено в True, элемент управления будет иметь наименьший возможный размер, необходимый для отображения его содержимого;

- Enabled – если свойство установлено в True, пользователь может взаимодействовать с этим элементом управления, если же значение свойства равно False, элемент управления защищен и на него не может быть установлен «фокус» при работе с формой;

- Font– название шрифта, его размер и стиль, используемый для отображения текста, связанного с элементом управления (не применяется для полос прокрутки и счетчиков);

- Left,Top, Width, Height – свойства, определяющие позицию и размер элемента управления в пунктах;

- Locked – если свойство установлено в True, и, кроме того, включена защита рабочего листа для объектов, то пользователь не может редактировать элемент управления во время разработки;

- Visible – если установлено в True, элемент отображается во время выполнения, если значение свойства равно False, объект скрыт;

- общие события:

- Click – происходит, когда пользователь нажимает или отпускает кнопку мыши на элементе управления;

- DblClick – происходит, когда пользователь дважды щелкает кнопкой мыши на элементе управления;

- KeyPress – происходит при нажатии клавиши ANSI (любой клавиши на клавиатуре, за исключением клавиш управления курсором, функциональных клавиш и клавиш управления Ctrl, Shift, Alt);

- GotFocus, LostFocus – происходит, когда элемент управления получает или теряет «фокус» соответственно;

- MouseDown, MouseMove, MouseUp – используются для определения отдельных действий при нажатии кнопки мыши (определение точного положения курсора на экране, где была нажата кнопка мыши, была ли нажата клавиша Ctrl, Shift или Alt, когда произошло событие);

- BeforeDragOver, BeforeDropOrPaste – используются для реализации функциональных возможностей перетаскивания в элементе управления;

- Error – используется для уведомления приложения о том, что произошла ошибка и она относится к элементу управления (предоставляет информацию об ошибке, которую можно обработать в коде).

Более подробную информацию можно получить в справочной системе VBA, выполнив поиск информации об интересующем событии по его названию. Ниже приведена информация об основных свойствах, методах и событиях пользовательских форм (рис. 3).

Свойства объекта UserForm:

Name или CodeName – содержит имя, используемое при ссылке на пользовательскую форму в коде;

BackColor – цвет фона;

Caption – текст, отображаемый в заголовке окна формы;

Left, Top, Height, Width – положение и размер окна;

Picture – рисунок, отображаемый как фон;

StartUpPosition – применяется для автоматического центрирования формы.

– Методы объекта UserForm:

Show– модально отображает пользовательскую форму;

Hide – закрывает пользовательскую форму;

PrintForm – печатает изображение формы.

– События объекта UserForm:

Initialize– происходит при отображении формы;

QueryClose – происходит перед закрытием пользовательской формы; с помощью установки аргумента Cancel в True можно отменить закрытие формы;

Terminate – происходит после закрытия пользовательской формы.

– Основные элементы управления в пользовательских формах и их свойства (в дополнение к перечисленным выше свойствам):

- CommandButton ­– командные кнопки, для которых определены свойства:

- Caption – это свойство задает текст, отображаемый на кнопке;

- Picture– свойство, определяющее графическое изображение на кнопке;

- TakeFocusOnClick – если свойство равно False, кнопка не принимает фокус (он сохраняется при нажатии на кнопку), если True – фокус переводится на кнопку;

- Default – установка этого свойства в True делает кнопку кнопкой по умолчанию, т.е. при нажатии клавиши Enter кнопка активизируется так же, как если бы на ней был произведен щелчок;

- Cancel – установка этого свойства в True делает кнопку отменяющей, т.е. нажатие клавиши Esc активизирует кнопку так же, как если бы по ней был выполнен щелчок;

- CheckBox – флажок – имеет как правило, два состояния (установлен и сброшен), которые соответствуют значениям True и False, но может быть настроен для трех состояний (установлен, сброшен и не определен); может быть связан с данными приложения (например, с диапазоном ячеек рабочего листа):

- Caption – свойство, задающее текст, отображаемый рядом с этим элементом управления;

- TripleState – при установке в True значения этого свойства флажок может принимать три состояния (True, False, Null);

- Value – свойство, определяющее значение флажка;

- LinkedCell– позволяет автоматически помещать значение флажка в ячейку (это свойство используется при размещении элементов управления на рабочем листе Excel);

- GroupName – имя группы, в которую включается флажок; группу можно выделить на экране с помощью рамки (объект Frame);

- OptionButton– переключатель – по свойствам и функциональным возможностям напоминает предыдущий элемент, но элементы этого типа объединяются в группы, в каждой группе может быть установлен лишь один переключатель, по умолчанию все переключатели объединяются в одну группу, а для разделения переключателей по нескольким группам используется свойство GroupName; переключатели, помещенные на пользовательской форме внутри рамки (объекта Frame) будут выполнять роль группы вне зависимости от установки их свойства GroupName; причем при перемещении рамки помещенные в нее переключатели также будут перемещаться;

- ToggleButton – выключатель – по свойствам аналогичен элементу управления CheckBox, но выглядит на экране, как кнопка, которая может быть нажата или отжата;

- ListBox – список, позволяющий выделить один или несколько элементов; для него можно изменять размер окна и количество одновременно отображаемых элементов; можно организовать прокрутку элементов с помощью полосы прокрутки; этот управляющий элемент имеет следующие свойства и методы:

- List – свойство, задающее список, представляет собой массив строк, где каждый элемент – это один элемент списка;

- ListCount – количество элементов в списке;

- MultiSelect– определение способа выделения элементов в списке (может принимать одно из следующих значений: fmMultiSelectSingle – допускается выделение единственного элемента, fmMultiSelectMulti – простое многоэлементное выделение (может быть выделено несколько элементов щелчками мыши на каждом из них), fmMultiSelectExtended – расширенное множественное выделение (элементы выделяются щелчками мыши при нажатых клавишах Shift или Ctrl));

- ListStyle – устанавливает стиль изображения списка (fmListStylePlain – список изображается в обычном виде, fmListStyleOption – отображается столбец флажков или переключателей слева от элементов списка);

- ListIndex – индекс выделенного в данный момент элемента списка (для списков с возможностью единичного выделения);

- Value – содержит текст, выделенный в списке в данный момент (используется для списков с единичным выделением);

- Selected – массив логических значений, каждый элемент которого отражает состояние выделения соответствующего элемента списка (значение элемента этого массива равно True, если соответствующий элемент в списке выделен, и False – для невыделенного элемента);

- ListFillRange – используется в Excel для указания диапазона ячеек рабочего листа, с которым связано содержимое ячеек списка;

- LinkedCell – используется в Excel для указания диапазона ячеек рабочего листа, с которым связано свойство Value, содержащее выделенное в данный момент значение (при единичном выделении);

- MatchEntry – определяет тип автоматического перемещения по элементам списка при вводе с клавиатуры: fmMatchEntryFirstLetter – подбирает для каждого введенного символа первую строку в списке, начинающуюся с этого символа, fmMatchEntryComplete – подбирает строку, содержащую все введенные символы, fmMatchEntryNone – отключает возможность подбора;

- AddItem– метод добавления одного элемента в список; в качестве аргументов передаются строка текста, представляющая элемент (pvargText), и индекс элемента в списке (0 – для добавления элемента в вершину);

- Clear – метод удаления всех элементов из списка;

- RemoveItem – метод удаления одного или нескольких элементов из списка; имеет один аргумент – индекс первого удаляемого элемента списка (pvargIndex, строки нумеруются с 0);

- ComboBox– поле со списком – элемент, напоминающий по функциональным возможностям рассмотренный выше список, но дает возможность выбирать и вводить только один элемент; имеются следующие особенности:

- Style – при установке в свойстве Style значения fmStyleDropDownList поле со списком становится похожим на список, а установка значения fmStyleDropDownCombo дополнительно дает возможность пользователю ввести значение в видимое поле, причем этого значения может не быть в списке, тогда введенное значение присваивается свойству Value, но в список не вставляется (его можно будет добавить позднее);

- ListRows – количество элементов, отображаемых в раскрываемом списке после нажатия кнопки раскрытия списка; все элементы дает возможность просматривать полоса прокрутки;

- ScrollBar (полоса прокрутки) и SpinButton (счетчик) – сходные по своим функциональным возможностям элементы управления (счетчик, по сути, является полосой прокрутки без ползунка), предоставляют графический интерфейс для установки числовых значений; для этих элементов важны следующие свойства, события и методы:

- Max – наибольшее значение (положительное число или 0);

- Min – наименьшее значение (положительное число или 0);

- SmallChange – положительное или отрицательное целое число, задающее величину изменения счетчика или полосы прокрутки при щелчке по одной из стрелок;

- LargeChange – положительное или отрицательное целое число, задающее величину изменения полосы прокрутки при щелчке внутри полосы прокрутки (для счетчика не используется);

- Value – текущее значение полосы прокрутки или счетчика;

- LinkedCell – для элемента на листе Excel можно задать диапазон, с которым связано значение свойства Value;

- Change ­– событие, происходящее при изменении значения элемента управления;

- TextBox – поле, дает возможность пользователю ввести текст в указанную область; имеет следующие основные свойства:

- Text – устанавливает или возвращает текст, содержащийся в элементе управления;

- MultiLine – если установлено в True, элемент управления будет отображать многострочный текст;

- MaxLength – максимальное количество символов, которые можно ввести в один элемент;

- PasswordChar – символ, отображаемый при вводе «пароля» (если это свойство определено, данный символ будет отображаться вместо вводимого текста);

- LinkedCell – позволяет на рабочем листе Excel автоматически помещать значение свойства Text в указанную ячейку;

- Frame – рамка, используется для визуальной группировки элементов управления на форме; на рабочем листе элементы можно сгруппировать с помощью элемента GroupBox;

- Label – надпись, используется для отображения текстов на форме; наиболее важное свойство этого элемента управления – Caption – задает отображаемый текст;

- Image– рисунок, используется для отображения графики;

- MultiPage – набор страниц – элемент, доступный только на пользовательских формах, используется для реализации многостраничных диалоговых окон; каждая страница имеет свой ярлычок, на каждую страницу можно поместить свои элементы управления; при разработке формы можно создать новую страницу, удалить, переместить или переименовать существующую страницу с помощью команд контекстного меню, вызываемого щелчком правой кнопкой мыши по ярлычку страницы; элементы управления размещаются на каждой странице независимо от других страниц; могут быть также элементы управления, не принадлежащие ни одной странице, размещенные непосредственно на форме;

- TabStrip – набор вкладок – элемент, используемый для создания диалоговых окон с вкладками; отличие от многостраничного окна в том, что этот элемент не может содержать других элементов управления и необходимо писать код, отображающий и скрывающий элементы управления для каждой вкладки, в обработчике события, происходящего при переключении пользователем вкладок, а это сложнее, чем просто поместить элементы на форму и написать обработчики событий для них;

- RefEdit – элемент, используемый только в пользовательских формах, созданных в Excel, позволяет указывать ячейки в модальном диалоговом окне для выделения диапазона; он имеет кнопку справа, с помощью которой можно временно скрыть диалоговое окно и увидеть содержимое рабочего листа; основное свойство этого элемента – Text.

Последовательность перехода определяет порядок, в котором элементы диалогового окна будут активизироваться при нажатии клавиши Tab. Этот порядок должен быть естественным и понятным пользователю. Для изменения последовательности перехода можно в Редакторе VBA выбрать команду Последовательность перехода в меню Вид. В открывшемся диалоговом окне будет отображена текущая последовательность. Для ее изменения следует выбрать нужный элемент и перемещать его вверх или вниз в списке с помощью соответствующих кнопок.

Для отображения пользовательской формы из процедуры VBA вызывается метод Show пользовательской формы. После закрытия формы можно проверить «причину» ее закрытия. В приведенном ниже примере пользовательская форма UserForm1 может быть закрыта щелчком по кнопке «Выполнить» (первая командная кнопка – CommandButton1) или кнопке «Отменить» (вторая командная кнопка – CommandButton2). После ее закрытия в процедуре проверяется, какая кнопка была нажата:

Sub UserForm_Example()

UserForm1.Show

If UserForm1.Tag = vbOK Then

MsgBox “Нажата кнопка «Выполнить»”

Else

MsgBox “Нажата кнопка «Отменить»”

End If

End Sub

Чтобы закрыть пользовательскую форму, можно вызвать метод Hide элемента управления на пользовательской форме. Пользовательская форма имеет модальный характер, поэтому в одной подпрограмме нельзя и открыть, и закрыть форму. В модуле кода формы находятся обработчики событий для ее элементов. Ниже приведен код обработчиков события Click для двух командных кнопок. Кроме закрытия формы в этих обработчиках устанавливается свойство Tag. Это делается для того, чтобы после закрытия диалогового окна можно было определить, какая кнопка была нажата.

Private Sub CommandButton1_Click()



<== предыдущая лекция | следующая лекция ==>
Взаимодействие с пользователем | Me.Hide


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.325 сек.