Добавление элементов в список 


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



ЗНАЕТЕ ЛИ ВЫ?

Добавление элементов в список



Элементы в список могут добавляться во время разработки и программно.

При формировании списка во время проектирования с помощью свойства items вручную задается весь необходимый список. Для этого следует выбрать свойство и нажать расположенную справа кнопку с тремя точками. Откроется диалоговое окно String Collection Editor (Редактор элементов списка), пока­занное на рис. 4.10. Каждая строка поля ввода соответствует одному элемен­ту. Пустая строка может также являться элементом списка. После задания всех элементов нужно нажать кнопку ОК, окно редактора элементов списка закроется, а элемент управления ListBox будет отображать указанные зна­чения.

 

 

 

Рис. 4.10. Диалоговое окно Strng Collection Editor

 

Данные в список не обязательно вводить в алфавитном порядке, т. к. их мож­но упорядочить, установив для свойства sorted (Сортировка) значение True. В этом случае вновь вводимые элементы списка будут располагаться в алфа­витном порядке.

Для добавления элементов в список программным способом предназначен метод Add коллекции items элемента управления ListBox. Как правило, дан­ный метод помещается в редактор кода после инициализации компонентов.

(Замечание)

Понятие "коллекция" введено в Visual Basic для облегчения изменения свойств группы объектов. Если элементы входят в коллекцию, для изменения их общего свойства можно использовать наименование коллекции и специальную форму оператора цикла For. Иными словами, коллекцию можно сравнить с массивом переменных, поскольку обращаться к входящим в нее объектам можно как к элементам массива. Например, для программного добавления имен столиц в список необходимо дополнить код следующими строками:

ListBoxl.Items.Add("Афины, Греция")

ListBoxl.Items.Add("Брюссель, Бельгия")

ListBoxl.Items.Add("Минск, Беларусь") 1

Для добавления сразу нескольких элементов в список можно использовать метод AddRange. Тогда предыдущий код можно заменить следующими стро­ками:

Dim capitals{) As String = {"Афины, Греция", "Брюссель, Бельгия",

"Минск, Беларусь"}

ListBoxl.Items.AddRange(capitals)

Чтобы в списке не было одинаковых строк, необходимо перед добавлением элемента осуществлять проверку на его существование с помощью метода Contains. Тогда код будет иметь следующий вид:

Dim list As String() = {"Афины, Греция", "Брюссель, Бельгия",

"Минск, Беларусь"}

For Each item As String In list >

If Not ListBoxl.Items.Contains(item) Then ListBoxl.Items.Add(item)

End If '

Next item

Удаление элементов из списка

Visual Basic позволяет удалять элементы из списка программно с помощью методов Remove И RemoveAt коллекции Items Элемента управления ListBox.

Для удаления элемента по его тексту используется метод Remove:

ListBoxl.Items.Remove("Минск, Беларусь")

Чтобы удалить из списка элемент по его индексу, необходимо воспользовать­ся методом RemoveAt. Следующая строчка позволяет удалить первый элемент списка:

ListBoxl.Items,RemoveAt (0)

С помощью этих методов также можно удалить из списка выделенный эле­мент:

ListBoxl.Items.Remove{ListBoxl.Selectedltem)

ListBoxl.Items.RemoveAt(ListBoxl.Selectedlndex)

Свойства selecteditem и Selectedlndex задают соответственно текст и индекс выделенного элемента списка.

Для удаления всех элементов из списка предназначен метод clear коллекции items элемента управления ListBox:

ListBoxl.Items.Clear()

Вставка элементов в список

Чтобы во время выполнения приложения вставить элемент списка, нужно воспользоваться методом insert коллекции items элемента управления ListBox. Этот метод позволяет создать новый элемент списка в определенном месте списка. Например, с помощью следующей строки можно вставить имя столицы в начало списка:

ListBoxl.Items.Insert(0, "Brussels, Belgium")

(Замечание)

Если установлена сортировка по алфавиту, т. е. задано значение True для свойства Sorted, то указанная в методе insert позиция элемента игнорируется» и элемент занимает позицию в соответствии с алфавитным порядком.

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

Visual Basic 2010 позволяет использовать списки, разрешающие пользовате­лю выбирать из них несколько.элементов. Для создания таких списков пред­назначено свойство SeiectionMode. Оно может принимать значения, пред­ставленные в табл. 4.10.

 

Таблица 4.10. Значения свойства SelectionMode

Значение Описание
MultiExtended Разрешен выбор нескольких элементов с помощью стандартных методов Windows. Для выбора подряд расположенных элементов не­обходимо при нажатой клавише <Shift> выбрать первый выбираемый элемент, а затем последний. При этом будут выбраны все размещен­ные между ними элементы. Для выбора не подряд расположенных элементов следует нажать клавишу <Ctrl> и, удерживая ее, выделить требуемые элементы списка
MultiSimple Разрешен выбор нескольких элементов щелчком мыши или нажатием клавиши <Пробел>. Для отмены выбора необходимо щелкнуть мышью или нажать клавишу <Пробел> еще раз
None Запрещает выбирать элементы списка
One Стандартный список, используемый по умолчанию. Позволяет выби­рать одно значение

 

 

Доступ к элементам списка

Порой необходимо иметь возможность обратиться к определенному элементу списка. Для доступа к элементам списка предназначено свойство items эле­мента управления ListBox. Обращение к элементу осуществляется через ин­декс, определяющий его положение в списке. Нумерация элементов списка начинается с 0. Например, текст text1 и text2 первого и пятого элементов списка можно получить с помощью команд:

Dim textl As String = ListBoxl.Items(0)

Dim text2 As String = ListBoxl.Items(4)

Свойство Count коллекции items позволяет определить количество элементов в списке. Это значение можно использовать, например, в том случае, если нужно обрабатывать элементы списка в цикле. С помощью следующей стро­ки можно получить число строк пит в списке:

Dim num As Integer = ListBoxl.Items.Count

Выделенные элементы списка

Для определения выделенных пользователем элементов или их программного задания служат указанные в табл. 4.11 свойства.

 

 

Таблица 4.11. Свойства, определяющие выделенных объектов

 

 

Свойство Описание
Selectedlndex Задает или возвращает номер выделенного элемента списка. Если не выбран ни один, элемент из списка, то возвращает значение -1

 

 

Свойство Описание
  Selectedlndices Задает или возвращает номера выбранных элементов списка. Представляет собой коллекцию индексов выбранных элементов списка
Selectedltem Задает или возвращает текст выбранного элемента списка
Selectedltems Задает или возвращает коллекцию выбранных элементов списка

 

 

(Замечание)

Доступ к элементам коллекций Selectedlndices и SelectedIterms, включаю­щих выбранные элементы списка, осуществляется аналогично доступу к кол­лекции Items.

 

 

Чтобы задать выделяемые по умолчанию элементы списка, при запуске при­ложения можно использовать свойства из табл. 4. П или метод setseiected элемента управления ListBox, который имеет следующий синтаксис:

Sub SetSelected(ByVal index As Integer, ByVal value As Boolean) где: -

index — номер элемента в списке;

value — значение True позволяет выделить указанный элемент, а значение False — снять с него выделение.

Если необходимо снять выделение со всех элементов списка, применяется метод ClearSelected элемента управления ListBox.

Рассмотрим небольшой пример, демонстрирующий использование свойства Selecteditems. Для этого разместим в форме два списка. В первый список элементы введем с помощью свойства Items, а второй список будет отобра­жать выбранные в первом списке элементы. Для создания приложения вы­полните следующие действия:

 

1. Разместите в форме два списка, используя для этого элемент управления ListBox.

2. С помощью свойства Items первого списка введите элементы списка. Чтобы разрешить выбор из первого списка нескольких элементов, устано­вите для его свойства SeiectionMode значение Multisimple.

3. Теперь необходимо задать процедуру формирования элементов второго • списка при выборе элементов первого списка. Для этого в окне редактора

кода из раскрывающегося списка Class Name (Имя класса) выберите эле­мент управления ListBox, соответствующий первому списку формы, а из

раскрывающегося списка Method Name (Имя метода)— событие SelectedindexChanged, вызываемое при изменении списка выбранных эле­ментов.

Добавьте в тело процедуры следующий код:

Dim i As Integer

ListBox2.Items.Clear()

For i = 0 To ListBoxl.Selectedltems.Count — 1

ListBox2.Items.Add(ListBoxl.Selectedltems (i))

Next

Этот код позволяет при щелчке кнопкой мыши на любом элементе сначала очистить содержимое второго списка, а затем заполнить его выделенными в первом списке элементами.

Результат работы приложения приведен на рис. 4.11.

 

 

 

Рис. 4.11. Выбранные из первого списка значения отображаются во втором списке

 

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

Если необходимо определить индекс элемента списка, начинающегося с ука­занных символов, можно использовать метод Findstring элемента управле­ния ListBox, имеющий следующий синтаксис:

Function FindString(ByVal s As String,

ByVal startIndex As Integer) As Integer

 

 

где:

s — текст искомого элемента списка;

start index— позиция, с которой начинается поиск элемента. Данный параметр можно опустить, тогда поиск будет осуществляться с начала списка.

Если элемент не найден, то возвращается значение ListBox.NoMatches, что соответствует числу-1.

Для нахождения элемента списка, текст которого соответствует указанному, предназначен метод FindstringExact элемента управления ListBox, имеющий аналогичный методу FindString синтаксис.

С помощью следующего кода можно удалить; из списка все элементы, начи­нающиеся с буквы М:

Dim i As Integer = ListBoxl,FindString("M")

While Not i = ListBoxl.NoMatches ListBoxl. Items.RemoveAt (i) i = ListBoxl.FindString("M", i)

End While /

Элемент управления ComboBox

Списка типа ComboBox

называют раскрывающимися или полями со списком. Оба названия верны. Раскрывающимися их называют потому, что для выбора значения из списка Сначала необходимо список открыть, нажав кнопку со стрелкой, расположенную с правой стороны поля ввода. Второе название — поле со списком — они получили из-за того, что по своим функциям список типа ComboBox совмещает функции списка ListBox и поля ввода TextBox.

Иными словами, из списка ComboBox данные можно не только выбирать, но и вводить новое значение в находящееся в верхней части поле ввода.
Использование списков ComboBox позволяет представлять большой объем информации, экономя при этом место в форме.

(Замечание)

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

 

 

Стиль оформления списка

 

Стилем оформления списка типа ComboBox управляет свойство DropDownStyie. Оно может принимать значения^ приведенные в табл. 4.12 и показанные на рис. 4,12.

Таблица 4.12. Значения свойства DropDownStyie

Значение Описание
Dropdown Пользователь может вводить значение в текстовое поле, распола­гающееся в верхней части списка, либо открыть список, нажав кнопку с направленной вниз стрелкой с правой стороны поля, и выбрать из него требуемое значение, выбранное из списка значение переносится: в текстовое поле. Стиль, используемый по умолчанию

Таблица 4.12 (окончание)

Значение Описание
DropdownList Пользователь может лишь выбрать значение из списка, открываемого нажатием кнопки с направленной вниз стрелкой с правой стороны поля. Выбранное из списка значение переносится в текстовое поле
Simple При данном значении список отображается в форме в открытом со­стоянии. Если все элементы не помещаются в нем, то появляется вертикальная полоса прокрутки. Пользователь может вводить значе­ние в текстовое поле, располагающееся в верхней части списка, либо выбрать из списка требуемое значение, и оно переносится в тексто­вое поле

 

Рис. 4.12. Стили раскрывающегося списка

 



Поделиться:


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

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