Использование стандартных элементов управления Visual Basic.

Мы познакомились с наиболее часто используемыми элементами управления Visual Basic и их основными свойствами. Продолжим изучение этих элементов, а также рассмотрим стандартные элементы управления Microsoft и их использование при создании приложений.
 
Метка
Как уже было сказано, для размещения в форме текстовой информации, которая не может быть изменена пользователем приложения, используется элемент управления Label (Метка). Рассмотрим более подробно его свойства. Откройте окно свойств Properties данного объекта. Для этого выделите его и выберите в контекстном меню команду Properties (Свойства).
Текст метки задается свойством caption. Он может быть установлен в окне Properties или программно. Шрифт текстовой информации определяется свойством Font (Шрифт). Для выбора шрифта в окне свойств установите курсор в данное свойство и нажмите кнопку с тремя точками в правом столбце свойства. Открывается диалоговое окно Выбор шрифта ( 1), содержащее три списка, позволяющих указать наименование, начертание и размер шрифта.
Используя свойства ForeColor и Backcolor, можно задать цвет текстовой информации и цвет фона элемента управления. Свойство BorderStyle (Стиль рамки) определяет тип обрамления вокруг объекта Label, позволяя оформить надпись в виде текстового поля. Для этого вместо используемого по умолчанию значения None необходимо выбрать для свойства значение Fixed Single.
Свойство Appearance позволяет придать тексту некоторую объемность.
Свойство Alignment (Выравнивание) определяет выравнивание текста в элементе управления по правому, левому краю или по ширине. Если информация в объекте размещена на нескольких строках, то выравнивание осуществляется на каждой строке.
Оформление надписей в элементе управления Label меняется в зависимости ОТ значения СВОЙСТВ Alignment, Appearance И BorderStyle ( 2).
Текст, задаваемый объектом Label, может иметь достаточно большой размер и занимать несколько строк. Максимальное количество его символов — 65528. Задать размеры надписи можно с помощью следующих средств:

  • мыши;
  • клавиши-стрелки при нажатой клавише <Shift>;
  • свойства Height (Высота) и width (Ширина);
  • свойства AutoSize и Wordwrap.

Первые три способа задания размера текстового объекта удобны в тех случаях, когда он имеет небольшой конкретно заданный размер. Но хотя пользователь приложения не может изменять текст, отображаемый с помощью объекта Label, его можно изменять программно. В этом случае точный размер текстового объекта заранее не известен, и для задания его размера удобно использовать свойства Autosize и wordwrap. Рассмотрим их более подробно.
Свойство AutoSize
Свойство Autosize может иметь два значения. При установке значения False размер объекта остается постоянным и не зависит от длины заданного свойством caption текста. Если длина текста превышает длину объекта Label, часть информации, не поместившаяся в объект, будет не видна. При установке для свойства Autosize значения True длина объекта устанавливается таким образом, чтобы в нем поместилась задаваемая свойством caption текстовая информация.
 
Свойство Wordwrap
Свойство Wordwrap аналогично свойству Autosize, но в данном случае изменяется высота объекта, а ширина остается неизменной. При установке для данного свойства значения False размер объекта Label может изменяться только в горизонтальном направлении. Если значение свойства wordwrap равно True, размеры объекта Label будут увеличиваться в вертикальном направлении вниз, пока не поместится весь текст. При этом осуществляется автоматический перенос слов. В табл. 8.1 указаны размеры текстового объекта в зависимости от значения свойств wordwrap и Autosize.
Таблица 8.1. Значения свойств wordwrap и Autosize
Совет
Свойства AutoSize и Wordwrap удобно использовать для надписей, размеры которых могут изменяться в процессе выполнения формы. Чтобы при изменении размера объекта в вертикальном направлении не изменилась его ширина, необходимо сначала установить значение True для свойства Wordwrap, и лишь затем аналогичное значение для свойства AutoSize.
Свойство UseMnemonic
Свойство UseMnemonic элемента управления Label позволяет определить, как будет интерпретироваться символ амперсанда (&), размещенный в свойстве caption. Если установлено значение True, то амперсанд из текста удаляется, а символ, перед которым он расположен, подчеркивается. Эта возможность применяется для определения клавиш быстрого доступа. При использовании метки в качестве клавиши быстрого доступа пользователь может комбинацией клавиш <А11>+<подчеркнутая клавиша в метке> устанавливать фокус на элемент управления, следующий по порядку для клавиши <ТаЬ> за меткой.
Рассмотрим такой пример. В форме расположено несколько элементов управления. Среди них имеется текстовое поле, в которое вы хотите перейти нажатием клавиши быстрого доступа. В этом случае выполните следующие действия:
1. Создайте метку для текстового поля.
2. Откройте окно свойств Properties метки.
3. Выделите свойство Caption и в текст метки перед символом, который вы хотите использовать в качестве клавиши быстрого доступа, поместите символ амперсанда.
4. С помощью свойства Tabindex метки и текстового поля, установите для метки значение на единицу меньшее, чем у текстового поля.
Замечание
Если элемент управления имеет свойство Caption (например, элемент CheckBox), то для задания клавиши быстрого доступа необходимо использовать его собственное свойство.
 
Текстовое поле
Элемент управления TextBox, размещенный в форме, служит для ввода пользователем информации во время работы приложения или отображения информации, задаваемой свойством Text программно или при разработке. Объект TextBox, так же как и метка, отличается большим набором свойств. Рассмотрим их более подробно.
Свойства, определяющие оформление текста
Для задания стиля рамки текстового поля применяется свойство Borderstyle (Стиль рамки). Оно содержит два значения. По умолчанию используется значение Fixed Single, при котором поле выделено рамкой. При установке значения None рамка вокруг поля отсутствует. Свойство Appearance позволяет придать объемность текстовому полю, имеющему рамку.
Свойства Backcolor и ForeColor позволяют соответственно задать цвет фона и цвет текста, размещаемого в элементе управления TextBox.
С помощью свойства Alignment (Выравнивание) можно задать вариант выравнивания информации в поле: по центру, по левому или правому краю.
Для задания наименования, размера и начертания шрифта, отображаемого в текстовом поле, используется свойство Font (Шрифт).
Многострочные текстовые поля
По умолчанию предполагается, что текстовое поле служит для ввода одной строки текста. Свойства Multi-Line и ScrollBar элемента управления TextBox позволяют настроить объект таким образом, что он будет использоваться для ввода нескольких строк или даже большого блока текстовой информации.
Таблица 8.2. Предназначение свойств MultiLine и ScrollBar
Вид текстового поля меняется в зависимости от значения свойств MultiLine и ScrollBar ( 3).
Управление текстом в объекте TextBox
Программа Visual Basic позволяет во время выполнения программы управлять текстом, отображаемым в текстовом поле, с помощью свойств SelStart, SelLength И SelText.
В случае, когда фокус впервые переходит на текстовое поле, курсор по умолчанию устанавливается слева от находящегося в поле текста. В результате ввода или просмотра информации курсор может перемещаться в пределах поля. При последующем возвращении фокуса на поле курсор устанавливается в то место, куда он был установлен в последний раз.
Используя свойство Seistart объекта TextBox, можно указать место размещения курсора в поле при установке фокуса. Значение 0 соответствует крайней левой позиции. Свойство SelLength задает ширину точки ввода. По умолчанию она равна 0, т. е. в том месте, где курсор установлен, можно начинать ввод символов, не удаляя расположенной в нем информации. Рассмотрим следующий пример. Необходимо, чтобы в форме, предназначенной для ввода данных, размещенные данные замещались новой информацией. Для этого при установке фокуса на поле символы должны выделяться инверсным цветом ( 4) и при вводе данных удаляться. Свойство SelText позволяет задать текст, который заменит во время выполнения программы выделенный фрагмент.
Рассмотрим пример создания небольшого приложения, содержащего форму, представленную на  4. Форма содержит заголовок и текстовое поле, в котором при установке фокуса выделяется размещенный в нем по умолчанию текст. При создании приложения будем использовать рассмотренные нами элементы управления Label и TextBox.
1. Для создания нового приложения в меню File (Файл) выберите команду New Project (Новый проект). Открывается окно Project с расположенной в нем новой формой.
2. Чтобы разместить в форме заголовок, нажмите кнопку Label на панели элементов управления. Затем установите курсор в верхнюю часть формы и нарисуйте рамку требуемого размера.
3. Откройте окно свойств. Для этого щелкните правой кнопкой мыши на созданном объекте и выберите в контекстном меню команду Properties.
4. Выделите свойство caption (Надпись) и введите в правом столбце текст заголовка.
5. Чтобы сохранить первоначальную ширину заголовка и расположить текст в две строки, установите для свойства wordwrap значение True.
6. Для задания точной ширины заголовка присвойте свойству Autosize значение True.
7. По умолчанию текст заголовка выровнен по левому краю. Чтобы его отцентрировать, выделите свойство Alignment (Выравнивание). Затем в правом столбце нажмите кнопку раскрытия списка и выберите из него значение Center.
8. Для задания используемого в оформлении заголовка наименования шрифта, его размера и начертания воспользуйтесь свойством Font (Шрифт). Нажмите в правом столбце свойства кнопку с тремя точками и в открывшемся диалоговом окне Выбор шрифта установите необходимые параметры.
9. Разместим теперь в форме текстовое поле. Нажмите на панели элементов управления кнопку TextBox, установите курсор в форму и нарисуйте рамку требуемого размера.
10. Чтобы задать текст, отображаемый в текстовом поле при выполнении формы, выделите свойство Text и введите в правом столбце требуемый текст, например, Текстовое поле.
11. Так как мы хотим, чтобы при установке фокуса на текстовое поле в нем выделялся размешенный текст, необходимо создать процедуру обработки события. Для открытия окна редактора кода дважды щелкните мышью на объекте TextBox.
12. В окне редактора кода из списка Object выбрано значение Text1, указывающее наименование текстового поля. Выберите из правого списка Procedure значение GotFocus, позволяющее задать процедуру обработки события получения текстовым полем фокуса.
13. В области создания процедуры между операторами private sub Text1_Got Focus () и End Sub расположите следующие команды:
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Первая команда задает начальное положение выделяемого в поле текста. Вторая команда процедуры задает длину выделяемого фрагмента текста. Используемая в ней функция Len вычисляет длину текста, размещенного в текстовом поле и заданного свойством Text. На  5 показано окно редактора кода с введенными командами.
Совет
Если вы хотите во время выполнения программы заменить выделенную в текстовом поле информацию другим текстом, то можете использовать свойство SelText и вставить в процедуру следующую команду: Text1.SelText = "Информация, вводимая с помощью свойства SelText". В кавычках располагается размещаемый в текстовом поле новый текст.
14. После ввода текста процедуры закройте окно редактора кода, выбрав команду Close системного меню окна или нажав кнопку Закрыть, расположенную в верхнем правом углу заголовка окна.
15. Запустите программу на выполнение, выбрав в меню Run команду Start или нажав клавишу <F5>. Результат представлен на  4. Информация в текстовом поле выделена, и вы можете сразу же вводить на ее место новую.
 
Нередактируемые текстовые поля
Как мы уже говорили, текстовые поля, в отличие от меток, предназначены для ввода информации пользователями приложения. Но в том случае, если вы хотите, чтобы данные просматривались, но не редактировались, то можете воспользоваться свойством Locked. При установке значения True пользователь сможет просматривать данные без возможности их редактирования. В этом случае изменение информации в текстовом поле может выполняться только программно.
Проверка правильности ввода данных
При работе с текстовыми полями возникает необходимость проверки вводимых пользователем данных. В Visual Basic для этих целей предназначено событие validate. Например, размещенное в форме поле служит для ввода даты и вы хотите, чтобы при вводе информации в ином формате появлялось соответствующее предупреждение. Для этого выполните следующие действия:
1. Разместите в форме текстовое поле.
2. Для задания процедуры обработки события validate откройте окно редактора кода, дважды щелкнув кнопку мыши на текстовом поле.
3. Из списка Object по умолчанию выбрано значение Text1, указывающее наименование элемента управления TextBox. Из правого списка Procedure выберите значение Validate, позволяющее задать процедуру проверки. вводимых в поле данных.
4. Создайте следующую процедуру:
Private Sub Text1_Validate
If Not IsDate(Textl) Then MsgBox "Вводимые данные должны быть датой"
End Sub
5. Закройте окно редактора кода.
6. Разместите в форме еще одно текстовое поле, которое будет использовано в качестве объекта, на который можно перевести фокус после ввода информации в первое поле.
7. Запустите приложение на выполнение.
8. Введите в созданное поле информацию в каком-либо произвольном формате, например текстовую, и нажмите клавишу <ТаЬ> для перемещения фокуса на второе поле. На экране появится предупреждение, аналогичное представленному на  6.
Использование текстового поля для ввода пароля
Текстовое поле в Visual Basic характеризуется двумя свойствами, позволяющими использовать их при создании полей, предназначаемых для ввода пароля:

  • passwordchar — задает символ, отображаемый в поле вместо вводимых символов;
  • MaxLength — максимальное число символов, вводимых в поле.

На  7 показана форма, в которой в качестве символа, отображаемого в текстовом поле при вводе пароля, используется символ звездочки.
Подсказка
Visual Basic позволяет с помощью свойства ToolTipText (Текст подсказки) создавать текст краткого пояснения, появляющийся ниже курсора, когда он установлен на поле ( 8). Чтобы задать текст пояснения к текстовому полю, введите текст подсказки в правый столбец свойства.
Кнопки управления
В главе 3 вы познакомились с основными свойствами объекта, называемого кнопкой управления. Это один из наиболее часто используемых элементов управления. Рассмотрим еще несколько свойств, характеризующих данный элемент.
 
Клавиши быстрого доступа
Для кнопки управления можно задать клавиши быстрого доступа, что весьма удобно пользователям, использующим при работе с формой только клавиатуру. В этом случае для нажатия кнопки, размещенной в форме, достаточно будет нажать комбинацию клавиш <Alt>+< подчеркнутая клавиша в названии кнопки> Печать. Чтобы задать клавишу быстрого доступа, необходимо при вводе названия кнопки в поле свойства Caption перед соответствующей буквой наименования кнопки расположить амперсанд (&). В названии кнопки эта буква будет выделена подчеркиванием.
Замечание
Если вы не хотите, чтобы символ амперсанда интерпретировался как назначение клавиши быстрого доступа, вам необходимо поместить два символа амперсанда.
 
Свойства Default и Cancel
Одну из кнопок, размещаемых в форме, можно сделать кнопкой по умолчанию, т. е. помещать в нее фокус при запуске формы на выполнение. Для этого используется свойство Default. В этом случае для нажатия данной кнопки достаточно нажать клавишу <Enter>. Чтобы сделать кнопку используемой по умолчанию, необходимо для свойства Default установить значение True.
Используя свойство cancel кнопки, можно сделать ее кнопкой отмены. Если для свойства Cancel установлено значение True, кнопка будет выбираться при нажатии клавиши <Esc>.
Замечание
При присвоении свойствам Default или Cancel кнопки значения True, аналогичные свойства других размещенных в форме кнопок получат значения False.
 
Стиль оформления кнопки
Для управления внешним видом кнопки используется свойство Style (Стиль). Оно содержит два значения. По умолчанию установлено значение Standard, предполагающее, что кнопка будет содержать текст, задаваемый свойством caption. Вы можете использовать в форме графические кнопки. В этом случае вместо текстовой надписи на кнопке размещается графическое изображение, задаваемое свойством picture, а свойство Style должно иметь значение Graphical.
Для задания графического изображения, помещаемого на кнопке, выделите свойство picture и нажмите кнопку, расположенную в правом столбце. В результате откроется диалоговое окно Load Picture ( 9), используя которое вы можете выбрать на диске файл, содержащий изображение.
Помимо вышеперечисленных свойств, для управления видом графической кнопки используются также свойства Disabledpicture и DownPicture. Свойство DisabledPicture позволяет задать графическое изображение неактивной кнопки, а DownPicture — графическое изображение, отображаемое на кнопке при ее нажатии.
 
Способы выбора кнопки управления
Существует несколько способов выбора размещенной в форме кнопки управления при выполнении приложения. Наиболее очевидный — это щелкнуть ее кнопкой мыши. Второй способ вам, вероятно, также знаком.
Он состоит в следующем: перемещая фокус между элементами управления формы нажатием клавиши <ТаЬ>, установите его на кнопку управления и затем нажмите клавишу <Enter> или <Spacebar>.
Кроме того, существует еще три способа выбора кнопки управления, задаваемые при ее создании:

  • клавиша быстрого доступа. Для выбора кнопки необходимо нажать комбинацию клавиш <Alt>+< подчеркнутая клавиша в названии кнопки>;
  • клавиша <Enter>, если для свойства Default кнопки установлено значение True, т. е. она объявлена кнопкой по умолчанию формы;
  • клавиша <Esc>, если для свойства cancel кнопки установлено значение True, т. е. она объявлена кнопкой отказа формы.

 
Список ListBox
Элемент управления ListBox, размещенный в форме, представляет собой список, из которого пользователь может выбрать одно из предложенных значений. Значения в списке могут размещаться в одну или несколько колонок. Количество колонок задается свойством Columns (Колонки). В том случае, если элементы списка не помещаются в выделенную для них в форме область, появляются полосы прокрутки, позволяющие просмотреть весь список.
 
Добавление элементов в список
Элементы в список могут добавляться во время разработки и программно с использованием метода Additem. При формировании списка во время разработки в свойстве List вручную задается весь необходимый список. Данные не обязательно вводить в алфавитном порядке, т. к. их можно упорядочить, установив для свойства Sorted (Сортировка) значение True. В этом случае вновь вводимые элементы списка также будут располагаться в алфавитном порядке.
Предупреждение
Нежелательно использовать сортировку, если данные в список будут добавляться методом Additem с использованием параметра index.
Для добавления элементов в список программным способом предназначен метод AddItem, имеющий следующий синтаксис:
NameList.AddItem выражение [, index]
где:

  • NameList — наименование списка, задаваемое свойством Name;
  • выражение — элемент списка. Если это символьная величина, то она должна быть помещена в кавычки;
  • index — порядковый номер элемента в списке. Если этот параметр отсутствует, элемент добавляется в конец списка.

Замечание
При использовании параметра index необходимо учитывать, что нумерация элементов начинается с 0.
Например, для программного формирования списка городов вам необходимо задать следующую процедуру:
Private Sub Form Load()
List1.AddItem "Москва"
List1.AddItem "С.Петербург"
List1.AddItem "Псков"
List1.AddItem "Новгород"
List1.AddItem "Чебоксары" End Sub
На  10 показано окно редактора кода, содержащего процедуру формирования списка городов.
Города в списке располагаются в том порядке, в котором они заданы в процедуре. Например, если строку кода List1.Additem "Чебоксары" заменить строкой
List1.Additem "Чебоксары", 0
то в списке городов Чебоксары будут помещены в первую позицию.

Удаление элементов из списка
Visual Basic позволяет программно удалять элементы из списка с помощью метода Removeitem, имеющего следующий синтаксис:
NameList.RenioveItem index
где NameList — наименование списка, задаваемое свойством Name, a index — порядковый номер удаляемого элемента в списке.
Например, чтобы удалить из созданного нами в предыдущем примере списка List1 второй элемент, необходим следующий программный код:
List1.Removeitem 1
Совет
Чтобы удалить все элементы из списка, можно использовать метод clear (Очистить). В этом случае программный код выглядит так: List1.Clear.
Свойства ListCount и Listlndex
Свойство ListCount позволяет определить количество элементов в списке. Это значение можно использовать, например, в том случае, если вы хотите обрабатывать элементы списка в цикле. Свойство Listlndex показывает номер выбранного элемента. При выборе первого элемента списка значение свойства равно 0 исходя из того, что нумерация элементов начинается с 0. Если выбран пятый элемент, значение свойства Listlndex будет равно 4.
Рассмотрим пример использования свойства Listindex. В форме, содержащей список ListBox, разместим текстовое поле, в котором будет отображаться выбранное из списка значение ( 12). Откройте окно редактора кода списка и для события click задайте следующую процедуру:
Private Sub List1_Click()
Text1.Text = List1.List(List1.Listindex)
End Sub
Запустите форму на выполнение. Выбираемое из списка значение отображается в расположенном рядом с ним текстовом поле.
Замечание
Свойства ListCount и Listindex доступны только при выполнении.
Стиль оформления списка
Для управления внешним видом списка используется свойство style (Стиль). Оно содержит два значения: Standard и CheckBox. По умолчанию используется значение Standard, которое мы уже рассматривали ранее. При установке для свойства style значения CheckBox элементы списка оформлены в виде флажков. На  13 показаны два вида списков в зависимости от значения свойства Style.
Совет
Для изменения значения свойства Style во время выполнения приложения можно использовать константы Visual Basic vbListBoxStandard и vbListBoxCheckBox.
 
Выбор нескольких элементов из списка
Программа Visual Basic позволяет использовать списки, предоставляющие пользователю выбирать из него несколько элементов. Для создания таких списков предназначено свойство Multiselect (Множественный выбор). Оно может принимать значения, представленные в табл. 8.3.
Таблица 8.3. Значения свойства Multiselect



 
Для обработки множественного выбора нельзя использовать свойство Listindex, применяемое при работе с обычными списками. Выбор нескольких элементов списка фиксируется в свойстве Selected, являющимся массивом, размерность которого равна количеству элементов в списке (определяется свойством ListCount). Выбранному элементу списка соответствует значение True соответствующего элемента свойства selected, а остальным — False.
Рассмотрим пример использования свойства Selected. Разместим в форме два списка. В первый список введем элементы с использованием свойства List. Список элементов во втором списке будет формироваться при перемещении на него фокуса после выбора элементов первого списка. Таким образом, второй список будет содержать выбранные в первом списке элементы. Для создания приложения выполните следующие действия:
1. Разместите в форме два списка с помощью кнопки ListBox на панели элементов управления.
2. Используя свойство List первого списка, введите элементы списка.
3. Чтобы разрешить выбор из первого списка нескольких элементов, установите для свойства Multiselect значение 1-Simple.
4. Теперь необходимо задать процедуру формирования элементов второго списка при перемещении на него фокуса. Для этого дважды щелкните мышью на втором списке.
5. В открывшемся окне редактора кода из списка Procedure выберите событие GotFocus (Получение фокуса) и введите следующий код:
Private Sub List2_GotFocus()
List2.Clear
For i = 0 To List1.ListCount — 1
If List1.Selected(i) Then List2.Addltem (List1.List (i))
Next
End Sub
На  14 представлен полученный результат.
Списки типа ComboBox
Списки типа СоmbоВох называют раскрывающимися или полями со списком. Оба этих названия верны. Раскрывающимися их называют потому, что для выбора значения из списка, имеющего установленные по умолчанию свойства, сначала необходимо открыть список, нажав кнопку со стрелкой, расположенную с правой стороны поля ввода. Второе название поле со списком они получили потому, что список типа ComboBox совмещает функции списка и поля ввода. Иными словами, можно не только выбирать данные из списка, но и вводить в поле ввода в верхней части новые значения. Использование списков ListBox дает возможность выдавать большой объем информации, экономя при этом место в форме.
Стилем оформления списка типа comboBox управляет свойство style. Оно может принимать значения, представленные в табл. 8.4.
Таблица 8.4. Значения свойства Style

Замечание
Для установки значения Style можно использовать также внутренние константы Visual Basic vbComboDropDown, vbComboSimple, И vbComboDropDownLis; соответственно.
 
Добавление элементов в список типа ComboBox
Элементы в список типа ComboBox могут добавляться во время разработки с помощью свойства List и программно с использованием метода Additem так же, как в список типа ListBox. При формировании списка во время разработки в свойстве List вручную задается весь необходимый список. Данные, отображаемые списком, можно упорядочить, установив для свойства Sorted (Сортировка) значение True.
Для добавления элементов в список программно используется метод Additem, имеющий приведенный ниже синтаксис:
NameList.AddItem выражение [, index]
где:

  • NameList — наименование списка, задаваемое свойством Name;
  • выражение — элемент списка. Если' это символьная величина, то она должна быть помещена в кавычки;
  • index — порядковый номер элемента в списке.

Замечание
Если при добавлении элементов в список параметр index отсутствует, то элемент добавляется в конец списка.
Обычно для программного формирования списка используется процедура Form_Load обработки события. Например, чтобы программно сформировать элементы для списка типа соmbоВох, содержащего список городов, вам достаточно задать следующую процедуру:
Private Sub Form Load()
Combo1.Additem "Москва"
Combo1.Additem "С.Петербург"
Combo1.Additem "Псков"
Combo1.Additem "Новгород"
Combo1. Additem "Чебоксары"
End Sub
Если при формировании списка вы не используете параметр index, элементы в списке располагаются в том порядке, в котором они заданы в процедуре. Например, если к приведенной ниже процедуре добавить строку кода
Combo1.AddItem "Киев",0
то в списке городов Киев будет помещен в первую позицию, а все остальные элементы смещены на одну позицию вниз.
 
Удаление элементов из списка типа СоmbоВох
Удаление элементов из списка типа СотЬоВох осуществляется с помощью метода Removeitem, имеющего следующий синтаксис:
NameList.Removeltem index
где NameList — наименование списка, задаваемое свойством Name, a index — порядковый номер удаляемого элемента в списке.
Например, для удаления из списка, имеющего наименование combol, первого элемента, можно использовать следующий код:
Combo 1. RemoveItem 0
Для удаления всех элементов из списка можно использовать метод clear (Очистить). В этом случае программный код выглядит так: combol. clear.
Доступ к элементам списка
Для получения доступа к выбранному элементу списка типа comboBox можно использовать свойство Text. Значением этого свойства является введенное в текстовое поле списка (для списков, у которых значение style равно 0-Dropdown Combo или 1-Simple Combo) или выбранное из списка значение.
Чтобы получить доступ к элементам списка, используйте свойство List. Значения этого свойства являются массивом, размерность которого равна значению свойства ListCount, то есть количеству элементов в списке. Например, значение первого элемента списка будет равно combol. List (0), второго — Combo1.List (1) и т.д.
Для определения положения элемента в списке типа ComboBox можно использовать свойство Listindex. Например, при выборе первого элемента списка значение свойства Listindex будет равно 0.
Замечание
Значение свойства Listindex равно -1, если из списка не выбран элемент, а также если элемент в текстовое поле списка введен пользователем вручную.
Для получения индекса последнего добавленного в список элемента можно использовать свойство Newindex (Новый индекс).
Линии и контуры
Visual Basic позволяет размещать в форме линии, прямоугольники, скругленные прямоугольники, круги, эллипсы, используемые для объединения в группу схожих по смыслу объектов и улучшения внешнего вида формы.
Линия
Для добавления в форму линии используется кнопка Line (Линия) на панели элементов управления. Установите указатель мыши в то место, где должна начинаться линия, и, не отпуская кнопку мыши, перемещайте его до получения линии нужной длины.
Свойство Borderwidth (Ширина границы) позволяет задать толщину линии. Для изменения толщины, заданной по умолчанию, введите в правый столбец свойства число, которое будет определять толщину линии.
Для изменения размеров линии и ее положения можно использовать мышь и клавиатуру аналогично тому, как это делается для всех элементов управления в форме. Помимо этого, можно использовать свойства X1, X2, YI и Y2, позволяющие изменять перечисленные параметры программно. Свойства X1и YI определяют, соответственно, горизонтальное и вертикальное положение левого края линии, а свойства X2 и Y2 — правого края.
Чтобы задать цвет линии, используйте свойство BorderColor (Цвет границы).
С помощью свойства BorderStyle (Стиль границы) можно указать стиль линии, используя значения, указанные в табл. 8.5.
Таблица 8.5. Значения свойств BorderStyle
Типы линии в зависимости от значения свойства BorderStyie показаны на  16. Для значения 0-Transparent линия не приводится, т. к. она все равно не видна в форме.
Контуры
Для добавления в форму контура предназначена кнопка Shape (Контур) на панели элементов управления. Она позволяет создавать в форме прямоугольник, квадрат, овал, окружность, прямоугольник и квадрат со скругленными углами.
Чтобы разместить в форме одну из вышеперечисленных фигур, выполните следующие действия:
1. Нажмите кнопку Shape (Контур) на панели элементов управления.
2. Установите указатель мыши в то место, где должен начинаться объект, и, не отпуская кнопку мыши, переместите указатель до получения контура требуемого размера.
3. Для придания созданному объекту требуемой формы, установите одно из следующих значений свойства shape, представленных в табл. 8.6.
Таблица 8.6. Значения свойства shape
 
На  17 приведены стандартные контуры, создаваемые в Visual Basic.
Совет
При создании стандартных контуров можно использовать внутренние константы Visual Basic:vbShapeRectangle, vbShapeSquare,vbShapeOval,vbShapeCircie, vbShapeRoundedRectangle И vbShapeRoundedSquare.
Используя свойство BackStyle, укажите, будет ли созданный объект прозрачным.
С помощью свойства Fillstyle можно задать узор заполнения, используя значения из табл. 8.7.
Таблица 8.7. Значения свойства FillStyle
Свойство FillColor позволяет задать цвет узора заполнения объекта, а свойство BackColor (Цвет фона) — цвет фона.
Свойство BorderStyle предназначено для задания стиля рамки объекта. Оно содержит те же значения, что и для линии.
Для придания контуру объемности используйте свойство SpecialEffect.
Полосы прокрутки
В Visual Basic существуют элементы управления VScrollBar и HScrollBar, называемые полосами прокрутки ( 18), для размещения в форме которых используются кнопки VScrollBar и HScrollBar на панели элементов управления. Если вы знакомы с документами программы Microsoft Word и другими программными продуктами, работающими в среде Windows, то имеете представление о полосах прокрутки. С ними мы также сталкивались при работе с многострочными текстовыми полями и списками, в которых информация не помещалась целиком в окне просмотра. Элементы управления VScrollBar и HScrollBar отличаются от полос прокрутки, встроенных в перечисленные элементы, так как существуют самостоятельно и используются для управления вводом параметра, значение которого может меняться в некотором диапазоне.
VScrollBar и HScrollBar
Размещение полосы прокрутки и настройка свойств
Основные свойства, характеризующие элементы управления типа VScrollBar и HScrollBar, представлены в табл. 8.8.
Таблица 8.8. Свойства элементов управления VScrollBar и HScrollBar
После размещения полосы прокрутки в форме необходимо, используя свойства Min и мах, задать диапазон значений, устанавливаемых с помощью данного элемента управления. Свойство value (Значение) определяет текущее положение бегунка на полосе прокрутки. Значения данных свойств могут быть только целыми числами и лежать в диапазоне от —32768 до +32767. При этом не обязательно, чтобы значение, задаваемое свойством Min, было меньше значения свойства мах. Вы можете использовать бегунок для отображения данных от большего значения к меньшему.
Значение свойства value меняется при перемещении бегунка и щелчке мыши на полосе прокрутки или на стрелках, расположенных по краям полосы. Для задания величины, на которую будет меняться значение свойства value при щелчке мыши на стрелках, находящихся по краям полосы прокрутки, используется свойство SmallChange (Малое смещение). С помощью свойства LargeChange (Большое смещение) можно задать величину, на которую будет смещаться ползунок при щелчке кнопкой мыши на полосе прокрутки. По умолчанию оба этих свойства имеют значение 1. На практике, свойство smallchange используют для более плавного изменения значения свойства value. Для свойства LargeChange устанавливают значение, равное, примерно, 10% от диапазона изменения свойства value.
Элементы управления типа VScrollBar и HScrollBar для отображения свойства value используют следующие события:
Рассмотрим пример использования в форме полос прокрутки. Разместим в форме элемент управления shape. Затем добавим в форму элементы управления vscroliBar и HScrollBar. Значение горизонтальной полосы прокрутки будем использовать для изменения формы объекта, задаваемой свойством shape, а значение вертикальной — для задания стиля оформления контура ( 19).
Выполните следующие действия:
1. Используя кнопку Shape на панели элементов управления, разместите в форме контур.
2. Разместите в форме горизонтальную и вертикальную полосы прокрутки, воспользовавшись, соответственно, кнопками HScrollBar и VScrollBar на панели элементов управления.
3. Горизонтальную полосу прокрутки будем использовать для изменения типа контура. Свойству Min присвоите значение 0, а свойству мах — значение 5, так как свойство shape (Контур) может принимать значения от О до 5.
4. Вертикальная полоса прокрутки будет служить для изменения стиля оформления контура. Свойству Min присвойте значение 0, а свойству мах — значение 6, так как свойство BorderStyle (Стиль границы) может принимать значения от 0 до 6.
5. В окне редактора кода, используя событие Change, возникающее после перемещения бегунка в момент отпускания кнопки мыши, а также после щелчка мышью в области полосы'прокрутки или на кнопках с изображениями стрелок, расположите следующий код:
Private Sub HScroll1_Change()
Shape1.Shape = HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Shapel.BorderStyle = VScroll1.Value
End Sub
Запустите форму на выполнение. Перемещая поочередно движки полос прокрутки, вы сможете наблюдать, как изменяется тип контура и стиль обрамления.
Элемент управления Frame
Элемент управления Frame является контейнером и служит для объединения других элементов в группу, после чего помещенными в него объектами можно управлять как единым целым. Например, элемент управления Frame можно использовать для объединения в группу размещенных в форме и функционально связанных переключателей.
Для настройки внешнего вида элемента управления Frame применяются свойства, указанные в табл. 8.9.
Таблица 8.9. Свойства элемента управления Frame
На  20 показано, как выглядит элемент управления Frame в зависимости от свойств объекта.
Создание группы элементов
Элемент управления Frame (Рамка) используется в формах в основном для объединения элементов в группы. Например, вы хотите разместить в форме две группы переключателей, чтобы с помощью первой группы переключателей выбирать страну, а используя вторую группу — наименование города. Все добавляемые в форму переключатели автоматически объединяются в одну группу, если только вы предварительно не разместите в форме два объекта типа Frame и не будете помещать создаваемые переключатели в соответствующую рамку.
При использовании рамки для создания группы элементов выполните следующую последовательность действий:
1. Создайте в форме объект типа Frame с помощью кнопки Frame (Рамка) на панели элементов управления.
2. Разместите в рамке объединяемые в группу элементы ( 21). Для этого щелкните соответствующую кнопку на панели элементов управления, поместите указатель мыши в рамку и перемещайте его, не отпуская кнопку мыши, до получения требуемого размера создаваемого объекта.
Совет
Чтобы проверить, создана ли группа из расположенных в рамке элементов, выделите элемент управления Frame и переместите его. Если вместе с рамкой переместились расположенные внутри нее объекты, то они все объединены в группу.
Нельзя поместить в группу элемент управления, размещенный в форме, простым перемещением. Если вы хотите переместить в группу находящийся в форме элемент, выполните следующие действия:
1. Выделите перемещаемый элемент.
2. Выполните команду Cut (Вырезать) меню Edit (Правка).
3. Установите указатель внутрь объекта Frame.
4. Выполните команду Paste (Вставить) меню Edit (Правка).
5. Переместите вставленный объект внутри рамки в требуемое место.
Таймер
В Visual Basic существует элемент управления, который обрабатывает данные системных часов. Этот объект называется таймером. Его можно использовать для выполнения определенных действий через заданный интервал времени.
Для размещения в форме таймера используется кнопка Timer (Таймер) на панели элементов управления формы. Объект данного типа обладает следующими свойствами:
Событие Timer (Таймер) объекта-таймера наступает через каждый установленный в свойстве interval промежуток времени. В процедуре обработки данного события необходимо определить действия, выполняемые с заданной частотой.
Для запуска таймера можно использовать метод Reset (Установить). Этот метод не связан с каким-либо событием, поэтому вы должны выполнить его при наступлении каких-либо других событий, например при нажатии на кнопку запуска таймера.
Использование таймера
Использование объекта-таймера рассмотрим на примере формы, в которой через заданный интервал времени на экран будет выводиться системное время компьютера. Для создания данной формы выполните следующие действия:
1. Откройте окно для создания нового проекта.
2. Поместите в форму метку для отображения текущего системного времени. Создайте пояснительную надпись к метке.
3. Для создания объекта-таймера нажмите кнопку Timer (Таймер) на панели элементов управления и расположите его в форме.
Замечание
Размещенный в форме элемент управления Timer изображается в виде значка, показанного на  22. При запуске формы на выполнение он становится невидимым пользователю приложения.
4. Определите интервал времени, через который необходимо производить обновление времени в форме. Для этого воспользуйтесь свойством interval, значение которого задается в миллисекундах. Для обновления времени каждую секунду введите значение 1000.
5. Откройте окно редактора кода и создайте простую процедуру, присваивающую свойству caption метки текущее время:
Private Sub Timer1 Timer()
Label1.Caption = Time
End Sub
Форма с размещенными элементами управления показана на  22.
6. Сохраните созданную форму и запустите ее на выполнение. Вы увидите время, обновляемое каждую секунду ( 23).


 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика