Программное выделение элемента списка 


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



ЗНАЕТЕ ЛИ ВЫ?

Программное выделение элемента списка



Для выделения элемента с индексом index используется метод listBox1. SetSelected(index, True).

ListBox1.SelectedIndex=index

Для снятия выделения с элемента с индексом index используется метод listBox1. SetSelected (index, False).

Можно ли в списке выбирать несколько элементов – зависит от свойства SelectionMode, которое может принимать следующие значения

None Нельзя выделять
One Можно выделить только один элемент
MultiSimple Можно выделить несколько элементов
MultiExtended Можно выделить несколько элементов, при выделении можно использовать клавиши SHIFT, CTRL и клавиши –стрелки.

Например:

' разрешаем выбор нескольких элементов

listBox1. SelectionMode = SelectionMode. MultiExtended

' Выделяем три элемента с индексами 0, 2 и 4.

listBox1. SetSelected(0, True)

listBox1. SetSelected(2, True)

listBox1. SetSelected(4, True)

Проверка состояния элемента списка

Метод 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 выводится список выделенных элементов и из индексы.



Поделиться:


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

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