|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Теоретические сведения. Создание форм. Свойства, события и методы формСоздание форм. Свойства, события и методы форм Форма – это главный объект, образующий визуальную основу приложения. По своей сути форма представляет собой окно, в котором можно размещать различные управляющие элементы при создании приложений. Для создания формы необходимо выполнить команду Вставка → UserForm. В окне Конструктора форм появится форма, имеющая стандартный вид для ОС Windows. Как и любой другой объект VBA форма имеет набор свойств, основные из которых приведены в таблице 1. Для получения справки по любому свойству достаточно выделить его в окне свойств и нажать F1. Таблица 1 – Основные свойства формы
Свойства можно изменять в режиме конструирования в окне свойств, либо программно в режиме выполнения. Например, в ходе выполнения программы можно изменить заголовок формы командой: frmForm1.Caption = "Привет". Программы для ПК в ОС Windows управляются событиями. Каждый раз, когда нажимается кнопка, перемещается мышь, изменяются размеры формы и т.д., ОС генерирует сообщение. Сообщение доставляется соответствующему объекту, например форме, а та генерирует соответствующее событие. Следовательно, можно составить фрагмент программы, в котором объект будет реагировать на событие определенным образом, т.е. любому стандартному событию соответствует определенная процедура. Чтобы просмотреть события связанные с формой, необходимо в режиме конструирования дважды щелкнуть на ней – появится окно программы, в котором щелкнуть на списке Процедура. В таблице 2 приведены наиболее часто используемые события. Таблица 2 – Основные события форм
Следующий пример изменяет заголовок формы при активизации, и уменьшает размер формы после щелчка левой кнопкой мыши на форме. Private Sub UserForm_Activate() frmForm1.Caption = "Щелчок на форме уменьшает её размеры" End Sub Private Sub UserForm_Click() frmForm1.Width = frmForm1.Width / 2 frmForm1.Height = frmForm1.Height / 2 frmForm1.Caption = "Сделай это еще раз!" End Sub Также форма обладает набором методов и инструкций. Метод определяет действие, которое может быть выполнено с объектом. Инструкция инициирует действие. Она может выполнить метод или функцию, В таблице 3 и 4 приведены наиболее часто используемые методы и инструкции для работы формами. Таблица 3 – Основные методы форм
Таблица 4 – Основные инструкции форм
В следующем примере предполагается, что в проекте созданы две формы frmForms. При запуске проекта происходит событие Initialize для формы frmForm1, форма frmForm2 загружается и выводится на экран. Когда при помощи мыши выбирается frmForm2, она делается невидимой, и появляется форма frmForm1. Если же выбирается frmForm1, frmForm2 появляется вновь. 'Событие Initialize формы frmForm1. Private Sub UserForm_Initialize() Load frmForm2 frmForm2.Show End Sub 'Событие Click для формы frmForm2 Private Sub UserForm_Click() frmForm2.Hide End Sub 'Событие Click для формы frmForm1 Private Sub UserForm_Click() frmForm2.Show End Sub Выбор и использование управляющих элементов Создание управляющих элементов на форме выполняется с помощью Панели инструментов, которая выводится на экран командой Вид → Панель элементов (рисунок 2). Рисунок 2 – Панель управления. С помощью кнопок этой панели можно поместить в форму необходимый элемент управления. Для этого нужно щелкнуть на значке элемента управления, далее при нажатой левой кнопке мыши определить размер и место расположения элемента в форме. Когда элемент на форме выделен (рамка объекта содержит маленькие прямоугольники) можно изменять его размеры и перемещать с помощью мыши, а также просматривать и изменять его свойства в окне свойств. Каждый управляющий элемент (объект) характеризуется набором свойств (которые можно изменять в режимах конструирования или выполнения), событий и методов. Для каждого объекта проекта необходимо определить его имя. В соответствии с общепринятыми соглашениями об именах объектов первые три символа имени должны отражать вид элемента, а остальные символы - назначение. В таблице 5 представлены сочетания первых трех символов для наиболее часто используемых элементов. Таблица 5 – Рекомендуемые сочетания первых трех символов имен
Командная кнопка является самым распространенным элементом управления, и может использоваться для организации выполнения вычислений и других действий, вызова процедур и функций пользователя, открытия форм и т.д. Основные свойства командной кнопки представлены в таблице 6. В свойстве Caption можно ставить символ & перед буквой, которая будет использоваться в сочетании с клавишей Alt для ускоренного доступа к кнопке. Также можно перейти к кнопке клавишей Tab, а затем нажать Enter. Таблица 6 – Свойства командных кнопок
Основным событием кнопки является Click. Для написания программного кода, который будет выполняться при нажатии командной кнопки, достаточно два раза щелкнуть на ней левой кнопкой мыши в режиме конструирования проекта. Наиболее полезным методом командной кнопки является SetFocus, позволяющий вернуться к кнопке (передать ей фокус). Например, следующая команда позволяет вернуться к кнопке по умолчанию после ввода данных в текстовое поле: cmdMyButtum.SetFocus Текстовое поле применяется для ввода или вывода информации. Основные свойства текстового поля представлены в таблице 7. Таблица 7 – Свойства текстового поля
Например, для очистки содержимого текстового поля в ходе выполнения программы необходимо ввести в требуемом месте программного кода команду: txtResult.Text=" " Основным событием текстового поля является Change, происходящее при вводе или удалении символов. Например, команду cmdMyButtum. SetFocus можно поместить в процедуру события Change текстового поля. Надпись применяется как самостоятельно для вывода справочной информации, так и в виде "подсказок" для текстового поля, списка или другого элемента. Главное её отличие от текстового поля в том, пользователь не может изменить текст надписи (хотя его можно изменить как свойство во время выполнения программы). Основные свойства надписи представлены в таблица 8. Таблица 8 – Свойства надписи
Список позволяет работать с перечнем из нескольких вариантов. Пользователь может просмотреть содержимое списка и выбрать один из вариантов для последующей обработки. Прямое редактирование содержимого списка невозможно. Если в списке помещаются не все строки, то автоматически добавляется вертикальная полоса прокрутки. Основные свойства списка представлены в таблица 9. Таблица 9 – Свойства списка
Для списка чаще всего используются события Click и DblClick (двойной щелчок левой кнопкой мыши на одной из строк списка). Во втором случае пользователь одновременно выделяет строку и начинает ее обработку. Работа со списком начинается с его заполнения методом AddItem, который может вызываться несколько раз подряд. Часто метод AddItem помещается в процедуру UserForm _ Initialize (), чтобы список заполнялся при загрузке формы.Метод RemoveItem удаляет строки из списка. Метод Clear очищает сразу весь список. Следующий пример показывает, как работают списки, при этом предполагается, что в проекте создана форма с двумя списками (List1 и List2). Двойной щелчок на любой строке одного списка перемещает её в другой список. Строка включается в другой список до того, как она будет удалена из текущего. Private Sub UserForm_Initialize () List1.AddItem "Стол" List1.AddItem "Стул" List1.AddItem "Диван" List1.AddItem "Кресло" List1.AddItem "Кровать" End Sub Private Sub List1_DblClick () List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End Sub Private Sub List2_dblClick () List1.AddItem List2.Text List2.RemoveItem List2.ListIndex End Sub Переключатели позволяют выбрать один вариант из группы. Обычно они группируются в рамках, однако их можно располагать прямо на форме, если используется только одна группа переключателей. Основные свойства переключателя представлены в таблице 10. Таблица 10 – Свойства переключателя
Наиболее важным является свойство Value значение True (переключатель находится в установленном состоянии), которого в режиме конструирования задается только у одного переключателя в группе. В режиме выполнения это свойство чаще всего проверяется в процедуре события Click кнопки, нажатой после установки нужного переключателя, что позволяет проверить перед вызовом следующей процедуры некоторое условие. Однако определенные действия можно выполнять сразу же после выбора переключателя в процедуре его события Click. Флажок частично аналогичен переключателю, но в отличие от него может использоваться как отдельный самостоятельный элемент. Даже объединенные в группу флажки работают независимо друг от друга. Основные свойства флажков такие же, как и у переключателя (см. таблицу 10). Однако свойство Value может принимать три значения (флажок находится в установленном состоянии, снятом или неопределенном). Наиболее часто используемым событием флажков является Click, в процедуре которого можно проверять состояние флажка по свойству Value. Следующий пример иллюстрирует работу флажков, при этом предполагается, что в проекте создана форма с двумя флажками (ChkBold и ChkInalic) и текстовым полем TxtExam (см. рисунок 3). После ввода символов в текстовое поле, с помощью флажков можно делать текст полужирным или курсивом. Свойства FontBold и FontItalic текстового поля устанавливают способы начертания текста. Рисунок 3 – Использование флажков. Private Sub Chkbold_Click() If ChkBold.Value = True Then TxtExam.FontBold = True Else TxtExam.FontBold = False End If End Sub Private Sub ChkItalic_Click() If ChkBold.Value = True Then TxtExam.FontItalic = True Else TxtExam.FontItalic = False End If End Sub Рамка используется для группировки переключателей или флажков, и помещается на форму раньше элементов, находящихся внутри неё. Переключатели находящиеся внутри рамки, работают как самостоятельная группа и не влияют на состояние переключателей в других рамках. Основным свойством рамки является Caption, которое задает текст, определяющий назначение элементов в рамке. Рисунок используется для простейшего вывода изображения на форме. Он может отображать растровые файлы (.BMP), значки (.ICO), метафайлы (WMF), а также файлы в формате JPEG (.JPG) и GIF (.GIF). Основные свойства рисунка представлены в таблице 11. Таблица 11 – Свойства рисунка
События и методы рамок и рисунков практически не используются. Событие Initialize инициализируется при загрузке формы при помощи оператора Load или метода Show. При выполнении команды Run/Run Sub/UserForm это событие не инициализируется. Это событие следует использовать при первой загрузке формы для установки каких-либо свойств формы и ее элементов управления. В следующем примере для этого события устанавливается свойство формы BackColor. Для создания формы, изменяющей фон цвета на событие Click. Для этого: - выберите команду Insert/UserForm(Вставка/UserForm); - дважды щелкните на форме в режиме разработки и введите следующие процедуры событий UserForm2 (см. листинг ниже): Процедуры событий UserForm2 Dim sRED, sGREEN, sBLUE 'переменные для задания цвета формы 'Процедура обработки события Initialize 'инициализируется один раз: при загрузке Private Sub UserForm_Initialize() ' задаем начальный цвет формы sRED = 100 sGREEN= 100 sBLUE= 200 UserForm2.BackColor= RGB(sRED, sGREEN, sBLUE) End Sub 'Процедура обработки события Click 'При каждой инициализации меняет цвет формы. При недопустимых значениях sRED, sGREEN, sBLUE выдает ошибку времени исполнения: Private Sub UserForm_Click() Dim i 'Меняем цвет формы: sRED = sRED+ 20 sGREEN = sGREEN + 10 sBLUE= sBLUE - 20 i = RGB(SRED, SGREEN, SBLUE) UserForm2.BackColor= i UserForm2. Caption= "Цвет: " & Str(i)'Изменить заголовок формы: End Sub После вывода формы с именем UserForm2 на экран событие Click будет приводить к изменению цвета и заголовка формы. В листинге для установки свойства формы BackColor используется функция RGB, которая возвращает RGB-значение типа Long, используемое далее для присвоения свойству UserForm2.BackColor. Синтаксис функции RGB: RGB(red, green, blue); именованные аргументы: Red, Green, Blue – обязательные; тип: Variant (Integer); числа в диапазоне 0 – 255; представляют красный, зеленый и синий компоненты цвета). Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |