Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 3490 / 369 | Оценка: 4.65 / 4.29 | Длительность: 30:37:00
Специальности: Программист, Менеджер
Лекция 14:

Проектирование интерфейса. Объекты диалоговых окон

Расположение объекта

Положение левого верхнего угла элемента управления задается свойствами Left (слева) и Top (сверху), определяющими координаты этого угла относительно левого верхнего угла контейнера - элемента, в который вложен данный. Контейнером может оказаться само диалоговое окно или вкладка элемента MultiPage или TabStrip.

Если оба параметра равны 0, левый верхний угол элемента совпадает с верхним левым углом контейнера. Для большинства систем координаты Left и Top должны находиться в диапазоне от -32767 до +32767. При отрицательных значениях на экране будет видна только часть элемента управления. Значения свойств Top и Left автоматически изменяются, когда пользователь перемещает элемент управления по экрану.

Размеры объекта на экране задаются свойствами Height (высота) и Width (ширина). Единица измерения - точка. Рекомендуемый диапазон значений этих параметров от 0 до 32767. Реальный диапазон зависит от видеосистемы компьютера. Значения свойств Height и Width автоматически изменяются, когда пользователь изменяет размер элемента управления на экране. При этом предыдущие значения размера запоминаются в свойствах OldHeight и OldWidth.

Параметры внешнего вида объекта

Свойство BackColor определяет цвет фона объекта. При задании из списка свойств объекта на этапе проектирования цвет можно выбрать непосредственно из таблицы цветов. При установке из программы в качестве значений используются целые числа. Цвет можно задавать, используя функцию RGB. Она определяет цвет как смешение трех компонентов, ѕ красной, зеленой и синей составляющим, каждая из которых принимает значения от 0 до 255. Например, RGB (255, 255, 0) задает желтый цвет. Чаще всего, цвет задается константами VBA, например, константа vbGreen определяет зеленый цвет.

Свойство BackStyle определяет прозрачность фона. По умолчанию его значение fmBackStyleOpaque = 1. При этом фон непрозрачен, виден его цвет, заданный свойством BackColor. Если значение BackStyle равно fmBackStyleTransparent = 0, фон прозрачен и виден объект, лежащий под данным объектом. На прозрачность рисунков свойство BackStyle не влияет.

Свойство ForeColor задает цвет переднего плана объекта (текста) ; возможные значения этого свойства такие же, как и у BackColor.

Свойство BorderColor задает цвет рамки (границы) объекта; возможные значения такие же, как и у BackColor.

Свойство BorderStyle определяет наличие или отсутствие рамки. Если его значение - fmBorderStyleNone = 0, видимая рамка у элемента управления отсутствует. При значении fmBorderStyleSingle = 1, у объекта есть рамка (в одну линию). Это значение устанавливается по умолчанию для всех объектов с рамками, кроме элементов управления ComboBox, Frame, Label, ListBox и TextBox, у которых по умолчанию рамки нет.

Альтернативный способ задания внешнего вида границы объекта предоставляет свойство SpecialEffect ; вот его значения:

  • fmSpecialEffectFlat = 0 - внешний вид объекта плоский, он отделяется от окружения границей и цветом; установлено по умолчанию для элементов Image и Label, но может быть установлено для любого элемента;
  • fmSpecialEffectRaised = 1 - верхняя и левая границы объекта подсвечены, а правая и нижняя затенены;
  • fmSpecialEffectSunken = 2 - верхняя и левая границы объекта затенены, а правая и нижняя подсвечены; элемент углублен в окружающее окно; установлено по умолчанию для элементов типа Frame, CheckBox и OptionButton ;
  • fmSpecialEffectEtched = 3 - углубленная рамка по краям элемента;
  • fmSpecialEffectBump = 6 - объект выделен выступом снизу и справа, а сверху и слева плоский.

Отметим, что значения 1, 3 и 6 не используются для элементов типа CheckBox и OptionButton.

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

Свойство ControlTipText определяет краткий текст, который появится на экране рядом с объектом, когда указатель мыши будет находиться на данном объекте.

Булево свойство Visible определяет, виден ли объект на экране; по умолчанию True - объект виден.

Шрифт

Свойство Font (шрифт) определяет характеристики символов, используемых в тексте диалогового окна или элемента управления. Значение этого свойства имеет тип Object. Основное свойство шрифта - имя Name. Если оно не указано, используется системный шрифт.

Визуальные характеристики шрифта устанавливают булевы свойства: Bold - полужирное начертание, Italic - наклонное, Underline - подчеркивание. Размер шрифта в точках задается свойством Size. Свойство Weight задает затемненность символов при печати.

Свойства поведения объекта

Булево свойство AutoSize обеспечивает автоматическое приспособление размеров элемента управления к размерам его внутреннего содержимого (названия, текста, элемента списка). Значение по умолчанию False - размеры элемента считаются постоянными; если размеры содержимого выходят за рамки объекта, оно обрезается.

Булево свойство Enabled определяет, может ли элемент управления оказаться в фокусе в результате действий пользователя. True (по умолчанию) делает элемент доступным. False отключает элемент, т. е. не позволяет пользователю получить доступ к нему с помощью мыши и клавиатуры (но элемент управления и в этом случае доступен для процедур программы). Отключенный элемент "сереет", т. е. выглядит на экране более тускло, чем включенный.

Если отключена рамка Frame, одновременно недоступны все находящиеся в ней элементы управления.

Булево свойство TabStop определяет, может ли пользователь установить фокус на данный элемент управления, используя стандартные клавиши Tab или Shift+Tab; по умолчанию равно True, т. е. элемент доступен.

Когда в результате нажатия клавиши Tab или комбинации Shift+Tab фокус должен переместиться на элемент MultiPage или TabStrip, он устанавливается на первую не отключенную закладку соответствующего элемента, т. е. на страницу со значением True свойства Enabled. Если таковой нет, соответствующий элемент отключен и не может попасть в фокус.

Если для командной кнопки значение Enabled - True, а TabStop - False, она не попадает в фокус при обходе элементов с помощью клавиши Tab, но окажется в фокусе, если ее щелкнуть (при условии, что ее свойство TakeFocusOnClick установлено в True ).

Булево свойство Locked определяет, может ли пользователь редактировать объект (изменять его значение). По умолчанию оно равно False, т. е. содержимое объекта доступно для редактирования.

Комбинации свойств Enabled и Locked задают различные варианты поведения элемента управления:

  • - оба свойства истинны: элемент может попасть в фокус и пользователь может копировать, но не редактировать данные элемента; изображение элемента в диалоговом окне нормальное (не серое) ;
  • - Enabled истинно, Locked ложно: элемент управления может попасть в фокус, а его содержимое можно копировать и изменять;
  • - Enabled ложно, Locked истинно: элемент не может попасть в фокус и выглядит тусклым; его данные нельзя ни изменить, ни скопировать; то же происходит, когда оба эти свойства ложны.

Другие свойства

Свойство TabIndex определяет порядковый номер элемента управления в обходе всех элементов с помощью клавиши Tab. Нумерация элементов начинается с 0.

Свойство ControlSource связывает данные основного документа приложения с состоянием элемента управления (значением свойства Value ). Значение этого свойства - строка, задающая ячейку рабочего листа, связанную с данным элементом. Например, чтобы задать в качестве значения этого свойства для флажка CheckBox1 ячейку С5, используется присвоение вида:

CheckBox1. ControlSource = "C5"

При этом изменения состояния элемента управления будут автоматически заноситься в эту ячейку, и наоборот, изменения в данных будут отражаться на состоянии элемента управления. Если текущее значение свойства Value для элемента равно Null, ячейка, связанная с ним не содержит никакого значения (пустая). По умолчанию значение ControlSource - пустая строка.

Свойство Tag задает текстовый комментарий к объекту. Оно никак не связано с его другими свойствами и может быть использовано для хранения вспомогательной информации об элементе управления. Иногда свойство Tag служит альтернативой свойству Name для идентификации элемента в программе.

Свойство Font определяет шрифт, используемый в изображении данного объекта. Его значение - объект класса Font, идентифицируемый по имени (свойству Name ). По умолчанию шрифт элемента управления тот, что установлен для его контейнера.

CheckBox - флажок (кнопка выбора)

Флажок, или кнопка независимого выбора, позволяет пользователю указать, выбирает или не выбирает он опцию (обычно ее название является также названием флажка, т. е. значением свойства Caption ). В зависимости от значения свойства TripleState у флажка может быть два или три состояния. По умолчанию значение этого свойства False, что соответствует двум значениям состояния флажка: True - флажок выбран, включен и False - флажок не выбран, выключен. Если для свойства TripleState установить True, у флажка появится также нейтральное состояние Null. Состояния флажка передаются в программу через свойство Value (Значение). Вот, например, возможные состояния флажка "С оптимизацией":

Возможные состояния флажка

Рис. 13. 2. Возможные состояния флажка

Верхний флажок находится в невыбранном состоянии ( False ), средний - в выбранном состоянии (значение True ) и нижний - в нейтральном состоянии (значение Null ). Кроме того, прямоугольная рамка вокруг названия нижнего флажка показывает, что он в фокусе (помечен).

ComboBox - комбинированный список

Комбинированный список - это элемент управления, соединяющий поле ввода с кнопкой и раскрывающимся списком. Работая с ним, пользователь может ввести значение непосредственно в поле ввода либо выбрать одно из значений в списке. Список состоит из строк данных. Данные в строке могут располагаться в одном или нескольких столбцах. Рассмотрим основные свойства объекта ComboBox.

  • ListCount определяет, сколько элементов находится в списке. Свойство доступно только для чтения и изменяется автоматически вместе с добавлением (удалением) элементов в список.
  • ListRows задает число одновременно видимых строк списка.
  • ListIndex задает номер выбранной строки; возможные значения от -1 до ListCount - 1, т. е. значение ListCount всегда на 1 больше максимального значения свойства ListIndex, так как нумерация строк начинается с 0. Если ни один элемент в списке не выбран, ListCount равно 0, а значением ListIndex будет -1.
  • ColumnCount определяет число столбцов в выводимом на экран списке; если оно равно 0, столбцы не выводятся, при значении -1 выводятся все столбцы.
  • ColumnWidths задает ширину каждого столбца для списков с несколькими столбцами. Значение этого свойства - строка, в которой размеры столбцов перечислены через точку с запятой. Пустое значение или -1 означают, что ширина столбца вычисляется автоматически, 0 - отсутствие столбца, значения > 0 задают ширину столбца в точках. Можно также рядом с числовым значением указывать другую единицу измерения. По умолчанию ширина столбца не меньше 1 дюйма (72 точек). Например, если значение ColumnCount (число столбцов) равно 4, а ширина всего окна списка 12 см, значение ColumnWidth вида "56; 112; 56; 112" устанавливает ширину первого и третьего столбцов - 56 точек (2 см), а второго и четвертого - 112 точек (4 см), то же разбиение можно получить, задав "2 cm; 4 cm; 2 cm; 4 cm". Если же задать "4 cm; 0;;8 cm", второго столбца на экране не будет, третий будет иметь минимальную вычисляемую ширину - 1 дюйм, а в четвертом будет видна лишь левая часть шириной около 5. 5 см (при этом появится горизонтальная полоса прокрутки). Отсутствие значения (пустая строка) означает, что все столбцы имеют одинаковую ширину.
  • TextColumn задает номер столбца, видного пользователю. Нумерация столбцов начинается с 1. 0 означает, что будет виден только выбранный элемент из строки ListIndex. При значении 1 выводится первый столбец, чья ширина, установленная свойством ColumnWidths, больше 0.
  • BoundColumn указывает столбец со значением данных (свойством Value ) в списке со многими столбцами. Если свойство равно 0, значением свойства Value будет номер ListIndex выбранной пользователем на экране строки. Если BoundColumn > 0, значение свойства Value берется из указанного столбца. Таким образом, пользователь может выбрать на экране один элемент, а в качестве значения этого выбора в программе можно задать другой. Например, список может содержать названия месяцев в первом столбце и их номера - во втором. Установив TextColumn = 1, а BoundColumn = 2, мы получим элемент, в котором пользователь выбирает месяц по названию, а программа получает в качестве значения объекта номер выбранного месяца.
  • Задать элементы списка можно программно, используя метод AddItem (например, в процедуре инициализации диалогового окна), либо установив при проектировании свойство RowSource. Его значение - строка, задающая диапазон ячеек Excel, из которых будут браться элементы списка. Например, следующие операторы задают список с 4 столбцами для элемента ComboBox1. Элементы этого списка берутся из ячеек b1:e6 текущего рабочего листа Excel:
    ComboBox1. ColumnCount = 4
    ComboBox1. RowSource = "b1:e6"
  • List - двухмерный массив с элементами списка. Обращение к нему:
    объект. List (строка,  столбец)
    а элементы этого массива имеют тип Variant. Нумерация строк и столбцов начинается с 0. Это свойство можно использовать для инициализации списка с несколькими столбцами в элементах управления ComboBox и ListBox. Допустим, на уровне модуля определен двухмерный массив строк ListItems (4, 3) , содержащий 3 столбца значений, которые мы хотим предложить пользователю для выбора. Тогда этот массив можно связать с комбинированным списком CBox в процедуре инициализации диалогового окна.
    Private Sub UserForm_Initialize () 
    	СBox. ColumnCount = 3			' задание числа столбцов списка
    	CBox. List ()  = ListItems		' присвоение значения списку
    End Sub
  • ListStyle определяет внешний вид списка. Если оно равно fmListStylePlain = 0, элементы списка выводятся в обычном виде без кнопок слева. Если же его значение - fmListStyleOption = 1, слева от каждого элемента списка выводится кнопка. Для списков с единственным выбором это кнопка-переключатель (OptionButton), а для списков с множественным выбором - кнопка-флажок (CheckBox). При выборе элемента в соответствующей кнопке появляется метка.
  • MatchRequired и MatchEntry определяют поведение комбинированного списка при вводе пользователем данных в поле ввода. Если MatchRequired равно True, вводимый пользователем текст может стать значением элемента, лишь когда он совпадает с одним из элементов списка. По умолчанию ему присвоено False, что не требует от вводимых пользователем данных совпадения с элементами списка. Свойству MatchEntry по умолчанию устанавливается 1, означающее, что при вводе пользователем очередного символа в списке ищется первый элемент, для которого введенное слово является префиксом и выводится в качестве значения. Если MatchEntry равно 0, поиск происходит по первой букве слова, т. е. при повторном выборе одной и той же буквы в качестве значений перебираются все элементы списка, начинающиеся на нее. При MatchEntry равном 2 список не реагирует на набираемый пользователем текст. Этот текст доступен через свойство Text.

События: AfterUpdate, BeforeDragOver, BeforeDropOrPaste, BeforeUpdate, Change, Click, DblClick, DropButtonClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, MouseDown, MouseUp, MouseMove.

Методы: AddItem, Clear, Copy, Cut, DropDown, Move, Paste, RemoveItem, SetFocus, ZOrder.

полина есенкова
полина есенкова
Дмитрий Вологжин
Дмитрий Вологжин
Добрый день, прошел тесты с 1 по 9, 10 не сдал, стал читать лекцию и всё пройденные тесты с 1 по 9 сбросились, когда захотел пересдать 10 тест.