Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Список (ListBox) и поле со списком (ComboBox)






Список (ListBox)

Поместите на форму список. Его имя - List1. Заполните список. Для этого зайдите в его свойство List и введите слово " Динамо" - первый элемент списка, после чего нажмите Ctrl-Enter. Теперь введите слово " Спартак" - второй элемент списка, нажмите Ctrl-Enter. И так далее. Запустите проект. Пощелкайте по элементам списка.

Если все элементы списка не умещаются в его видимом пространстве, то у списка автоматически возникает полоса прокрутки. А кнопку " Печать" я поместил на форму вот для чего:

Задача: Пусть вам нужно напечатать текст " Следующим соперником нашей команды будет команда …". На месте многоточия должно стоять название команды, выбранной вами из списка. Запустив проект, вы щелчком мыши выбираете нужную команду (на картинке выбран Спартак), а затем нажатием на кнопку печатаете текст.

Вот программа:

Private Sub Command1_Click()

Debug.Print " Следующим соперником нашей команды будет команда "; List1.Text

End Sub

Свойство Text списка List1 - это значение выбранного элемента списка List1. Пощелкайте по элементам списка, после каждого щелчка нажимая кнопку " Печать". Итак, мы нашли одно из применений списка: он облегчает ввод в компьютер часто встречающихся слов.

ComboBox (вариант " Раскрывающийся список")

ComboBox - это обогащенный новыми возможностями ListBox. Он существует в трех вариантах. Рассмотрим их по мере усложнения.

Поместите на форму ComboBox. Его имя - Combo1. Вариант ComboBox определяется значением его свойства Style. Выберите вариант Dropdown List - " Раскрывающийся список". Заполните ComboBox так же, как вы заполняли список ListBox. Запустите проект. Список выглядит так:

 

 

Щелкните по черной треугольной стрелке в правой части списка. Список раскроется и вы сможете выбрать из него любой элемент так же, как вы выбирали элементы из списка ListBox. Программа для ComboBox также будет совершенно аналогична программе для ListBox.

Private Sub Command2_Click()

Debug.Print " Следующим соперником нашей команды будет команда "; Combo1.Text

End Sub

Как видите, преимуществом раскрывающегося списка перед обычным является экономия места на форме.

ComboBox (вариант " Простой Combo")

Поместите на форму ComboBox (а проще - скопируйте старый). В его свойстве Style выберите вариант Simple Combo- " Простой Combo". Заполните ComboBox так же, как вы заполняли список ListBox. Запустите проект. Combo выглядит так:

 

 

Отличие ComboBox от ListBox в том, что сверху от списка имеется текстовое поле. Пока не вводите туда ничего, а просто выбирайте элементы из списка и печатайте, как в проекте с ListBox. Все получается по-старому. Зачем же нужно текстовое поле? А затем, что если вам вдруг понадобится распечатать команду, которой нет в списке, вы всегда можете ввести ее в текстовое поле и нажать кнопку печати.

Вариант " Раскрывающийся список" тоже имеет наверху текстовое поле, только вводить туда ничего нельзя.

ComboBox (вариант " Раскрывающийся Combo")

Раскрывающийся Combo объединяет в себе преимущества двух других вариантов ComboBox: он выглядит так же компактно, как раскрывающийся список, и позволяет редактировать текстовое поле, как простой Combo.

Свойства, события и методы элементов управления ListBox и ComboBox.

Все примеры, приведенные здесь относительно ListBox, относятся также и к любому варианту ComboBox.

Элементы списков нумеруются с нуля.

Оператор Смысл
List1.AddItem" Бавария" В конец списка List1 метод AddItem добавляет элемент Бавария
List1.AddItem " Боруссия", 3 Метод AddItem добавляет элемент Боруссия на место №3 в список List1.
List1.RemoveItem4 Метод RemoveItem удаляет элемент №4 из списка List1.
List1.Clear Опустошить список List1
Debug.Print List1.Text Напечатать значение выбранного элемента в списке List1
Debug.Print Combo1.Text Напечатать значение текстового поля из ComboBox
Debug.Print List1.List(5) Напечатать значение элемента №5 в списке List1
List1.List(0) = " Барселона" Присвоить элементу №0 в списке List1 значение Барселона
Debug.Print List1.ListIndex Напечатать номер выбранного элемента в списке List1. Если элемент не выбран, то печатается -1.
Debug.Print List1.ListCount Напечатать количество элементов в списке List1

 

Если вы хотите, чтобы элементы списка были отсортированы по алфавиту, то в режиме проектирования установите в True свойство Sorted. В режиме работы его менять нельзя. Сортировка нарушится, если вы будете использовать метод AddItem с индексом. Не забывайте, что сортировка - текстовая, а не числовая, поэтому 28 будет стоять выше, чем 5.

 

У ListBox есть некоторые преимущества перед ComboBox: он может состоять из нескольких столбцов и допускает множественный выбор. Но на этом мы останавливаться не будем.

 

Щелчок или двойной щелчок по элементу списка вызывают, как водится, события Click и DblClick.

Задача: Создать на форме простой Combo и 5 кнопок для разнообразной работы с его списком. Вот функции кнопок:

· Кнопка " Печать" распечатывает содержимое текстового поля Combo

· Кнопка " Удаление" удаляет выбранный элемент из списка

· Кнопка " Добавить" добавляет содержимое текстового поля в список (удобно для быстрого внесения дополнений в список)

· Кнопка " Перестановка" переставляет выбранный элемент в конец списка (удобно для произвольной сортировки списка)

· Кнопка " Заменить" заменяет выбранный элемент содержимым текстового поля (удобно для небольших исправлений в написании элемента)

Кроме этого, элемент должен распечатываться двойным щелчком.

Попробуйте выполнить это задание самостоятельно. Если не получится, то вот программа:

Dim номер As String 'Номер выбранного элемента в списке

 

Private Sub Печать_Click()

Debug.Print Combo1.Text

End Sub

 

Private Sub Удаление_Click()

Combo1.RemoveItem Combo1.ListIndex

End Sub

 

Private Sub Добавить_Click()

Combo1.AddItem Combo1.Text

End Sub

 

Private Sub Перестановка_Click()

Combo1.AddItem Combo1.Text

Combo1.RemoveItem Combo1.ListIndex

End Sub

 

Private Sub Заменить_Click()

Combo1.List(номер) = Combo1.Text

End Sub

 

Private Sub Combo1_Click()

номер = Combo1.ListIndex

End Sub

 

Private Sub Combo1_DblClick()

Печать_Click

End Sub

Задание 123-1: " Англо-русский словарь ". Поместите на форму два раскрывающихся списка. В левый запишите несколько десятков английских слов и упорядочте их по алфавиту. В правый запишите в том же порядке переводы этих слов на русский. При выборе слова в левом списке в правом должен появляться перевод.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.