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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Список (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: " Англо-русский словарь ". Поместите на форму два раскрывающихся списка. В левый запишите несколько десятков английских слов и упорядочте их по алфавиту. В правый запишите в том же порядке переводы этих слов на русский. При выборе слова в левом списке в правом должен появляться перевод.



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 226; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.113.30 (0.009 с.)