- •Оглавление
- •Класс и элемент Forma
- •Задание №1
- •Элемент TextBox
- •Выделение текста
- •Справка по функции InStr
- •Задание №2
- •Протестировать приложение.
- •Протестировать приложение. Операции с выделенным текстом
- •Задание №3
- •Элемент ListBox
- •Программное выделение элемента списка
- •Проверка состояния элемента списка
- •Доступ к коллекции выделенных элементов
- •Снятие выделения со всех элементов
- •Свойство TopIndex
- •Добавление элементов в список
- •Задание №3
Проверка состояния элемента списка
Метод GetSelected(index) возвращает True, если элемент списка с индексом i выбран, и –False в противном случае
If listBox1.GetSelected(i) = True Then …
Доступ к коллекции выделенных элементов
Согласно справке, для доступа к коллекции выделенных элементов используется свойство SelectedObjectCollection, которое, в свою очередь, имеет свойство Count и метод Item(i). Но при использовании SelectedObjectCollection интерпретатор выдает ошибки.
Лучше использовать свойство SelectedItems, которое для списка с множественным выбором возвращает коллекцию выбранных элементов. Метод IndexOf позволяет получить индекс элемента по его значению. Так ListBox1.Items.IndexOf("Ростов") вернет индекс элемента списка "Ростов". Если такого элемента в списке нет — вернется отрицаельное значение (-1).
Следующий код выводит список выделенных в ListBox1 элементов и их индексов.
Dim n As Integer
n = ListBox1.SelectedItems.Count
Dim selList As String = ""
Dim i As Integer
For i = 0 To n - 1
selList &= "Номер " & _ ListBox1.Items.IndexOf(ListBox1.SelectedItems.Item(i)) & _
" " & ListBox1.SelectedItems.Item(i).ToString & " " & vbCrLf
Next
MsgBox(selList)
Снятие выделения со всех элементов
listBox1.ClearSelected()
Свойство TopIndex
Свойство TopIndex определяет индекс самого верхнего элемента, видимого в списке. В следующем примере прокручивается список так, чтобы выделенный элемент оказался верхним в видимой части:
If listBox1.TopIndex <> listBox1.SelectedIndex Then
listBox1.TopIndex = listBox1.SelectedIndex
End If
Свойство Text возвращает значение элемента выбранного из списка последним.
Добавление элементов в список
Добавить элемент в список можно методом Add
ListBox1.Items.Add("Ростов")
Элемент списка "Ростов" для отсортированого списка будет добавлен в алфавитном порядке, для несортированного списка — в конец.
Если надо добавить сразу несколько элементов, то, чтобы список не перерисовывался несколько раз, надо использовать методы BeginUpdate() и EndUpdate().
listBox1.BeginUpdate() ' запрещаем перерисовку списка
'записываем в список 50 элементов
Dim x As Integer
For x = 1 To 50
listBox1.Items.Add("Item " & x.ToString())
Next x
'Разрешаем перерисовку списка
listBox1.EndUpdate()
Добавить несколько элементов можно методом AddRange(array)
Dim ItemObject(9) As System.Object ' String
Dim i As Integer
For i = 0 To 9
ItemObject(i) = "Item" & i
Next i
ListBox1.Items.AddRange(ItemObject)
Удаление элемента с индексом i
listBox1.Items.RemoveAt(i)
Удаление выделенного элемента
ListBox1.Items.Remove(ListBox1.SelectedItem)
Удаление элемента по значению
ListBox1.Items.Remove("Tokyo")
Очистка списка
ListBox1.Items.Clear()
Задание №3
3 .1 К форме предыдущего задания добавить новый элемент GroupBox с заголовком "Задание №3"
3.2 На этом элементе разместить:
3.2.1) текстовое поле с именем txtInput;
под ним список ListBox1, в который записать 4-5 имен. Список допускает множественное выделение;
3.2.2) кнопку btnAdd, при нажатии которой строка из текстового поля добавляется в список;
3.2.3) кнопку btnRemove, при нажатии которой удаляется из списка строка, находящаяся в текстовом поле. Если такой строки нет в текстовом поле – выводится соответствующее сообщение (MsgBox)
3.2.4) кнопку btnSelect, при нажатии которой в списке выделяется строка из текстового поля. Если такой строки нет в текстовом поле – выводится соответствующее сообщение (MsgBox). Не забудьте убрать предыдущее выделение.
3.2.5) кнопку btnClear, при нажатии которой список очищается.
3.2.6) метку lblSelect, при щелчке которой в окно MsgBox выводится список выделенных элементов и из индексы.