Визначення відмічених елементів в елементі управління checkedlistbox в windows forms 


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



ЗНАЕТЕ ЛИ ВЫ?

Визначення відмічених елементів в елементі управління checkedlistbox в windows forms



Представляючи дані в елементі управління CheckedListBox, можна або проглянути колекцію, збережену у властивості CheckedItems, або пройти за списком за допомогою методу GetItemChecked, аби визначити, які елементи помічені. Метод GetItemChecked отримує номер елементу як аргумент і повертає значення true або false. Всупереч чеканням, властивості SelectedItems і SelectedIndices не визначають помічені елементи: вони визначають, які елементи виділені.

Визначення помічених елементів в елементі управління CheckedListBox відбувається так:

1. Потрібно перебрати по колекції CheckedItems, розпочавши з 0, оскільки нумерація колекції починається з нуля. Зверніть увагу, що цей метод видасть номер елементу в списку помічених елементів, а не в повному списку. Якщо перший елемент списку не помічений, але помічений другий, в приведеному нижче коді відображуватиметься текст, наприклад, наступний: Checked Item 1 = MyListItem2

 

' Determine if there are any items checked.

If CheckedListBox1.CheckedItems.Count <> 0 Then

' If so, loop through all checked items and print results.

Dim x As Integer

Dim s As String = ""

For x = 0 To CheckedListBox1.CheckedItems.Count - 1

s = s & "Checked Item " & (x + 1).ToString & " = " & CheckedListBox1.CheckedItems(x).ToString & ControlChars.CrLf

Next x

MessageBox.Show(s)

End If

або

2. пройти по колекції Items, розпочавши з 0, оскільки нумерація колекції починається з нуля, і викликати метод GetItemChecked для кожного елементу. Зверніть увагу, що цей метод видасть номер елементу в повному списку; тому якщо перший елемент списку не помічений, але помічений другий, буде виведений текст, наприклад, такий Item 2 = MyListItem 2.

Dim i As Integer

Dim s As String

s = "Checked Items:" & ControlChars.CrLf

For i = 0 To (CheckedListBox1.Items.Count - 1)

If CheckedListBox1.GetItemChecked(i) = True Then

s = s & "Item " & (i + 1).ToString & " = " & CheckedListBox1.Items(i).ToString & ControlChars.CrLf

End If

Next

MessageBox.Show(s)

ВИКОРИСТАННЯ ЕЛЕМЕНТУ УПРАВЛІННЯ COMBOBOX ЗАМІСТЬ ЕЛЕМЕНТУ УПРАВЛІННЯ LISTBOX В WINDOWS FORMS

Поведінка елементів управління ComboBox і ListBox дуже схожа, і в деяких випадках вони взаємозамінні. Проте в інших випадках який-небудь з них більшою мірою відповідає поставленому завданню.

Як правило, поле зі списком використовується при наявності списку можливих варіантів, а список — при необхідності обмежити дані, що вводяться в список. Поле зі списком містить текстове поле, яке дозволяє вручну вводити варіанти, не представлені в списку. Виключення складає список, для якого властивість DropDownStyle задано значення DropDownList. В цьому випадку елемент управління вибиратиме відповідний елемент із списку по першій введеній букві.

Крім того, поля зі списком економлять місце у формі. Оскільки повний список не відображується, поки користувач не клацне кнопку із стрілкою вниз, поле із списком легко можна розмістити на невеликій частині форми, на якому не помістився б список. Виключення складає випадок, коли для властивості DropDownStyle задано значення Simple; при цьому відображується повний список, і поле зі списком займає більше місця, чим зайняв би список.

ДОДАВАННЯ І ВИДАЛЕННЯ ЕЛЕМЕНТІВ, ЩО ВІДОБРАЖУЮТЬСЯ В ЕЛЕМЕНТАХ УПРАВЛІННЯ COMBOBOX, LISTBOX І CHECKEDLISTBOX В WINDOWS FORMS

Елементи, що відображуються, зазвичай є рядками, проте можна використовувати будь-який об'єкт. Текст, що відображується в елементі управління, є значенням, що повертається методом ToString цього об’єкту.

Додавання елементів відбувається за наступними вказівками:

1. Потрібно додати рядок або об’єкт в список за допомогою методу Add класу ObjectCollection. Колекція вказується за допомогою властивості Items:

ComboBox1.Items.Add("Tokyo")

або

2. можна вставити рядок або об’єкт в потрібну точку списку за допомогою методу Insert:

CheckedListBox1.Items.Insert(0, "Copenhagen")

або

3. можна присвоїти колекції Items повний масив:

Dim ItemObject(9) As System.Object

Dim i As Integer

For i = 0 To 9

ItemObject(i) = "Item" & i

Next i

ListBox1.Items.AddRange(ItemObject)

Видалення елементу з колекції можна зробити наступними способами:

1. Для видалення елементів використовують методи Remove або RemoveAt.

Метод Remove має один атрибут, що визначає, який елемент слід видалити. Метод RemoveAt видаляє елемент з вказаним номером.

' To remove item with index 0:

ComboBox1.Items.RemoveAt(0)

' To remove currently selected item:

ComboBox1.Items.Remove(ComboBox1.SelectedItem)

' To remove "Tokyo" item:

ComboBox1.Items.Remove("Tokyo")

2. Для видалення усіх елементів викликається метод Clear:

ListBox1.Items.Clear()

СОРТУВАННЯ ВМІСТУ ЕЛЕМЕНТУ УПРАВЛІННЯ COMBOBOX, LISTBOX АБО CHECKEDLISTBOX В WINDOWS FORMS

Елементи управління Windows Forms не виконують сортування, якщо вони прив’язані до даних. Використання джерел даних, що підтримують сортування даних, дають можливість вивести відсортовані дані.

Сортування можливе, якщо елемент управління не прив’язаний до даних.

Сортування списку забезпечується значенням true властивості Sorted. Всі існуючі елементи списку будуть відсортовані по порядку.

ОТРИМАННЯ ДОСТУПУ ДО ПЕВНИХ ЕЛЕМЕНТІВ В ЕЛЕМЕНТАХ УПРАВЛІННЯ COMBOBOX, LISTBOX АБО CHECKEDLISTBOX В WINDOWS FORMS

Отримання доступу до певних елементів в елементах управління Windows Forms, списку або списку відмічених елементів є найважливішим завданням. Це дозволяє програмними засобами визначити, що знаходиться в будь-якому місці списку.

Щоб отримати доступ до певного елементу необхідно відправити запит до колекції Items з використанням номера певного елементу:

Private Function GetItemText(ByVal i As Integer) As String

' Return the text of the item using the index:

Return ComboBox1.Items(i).ToString

End Function

ЗВ’ЯЗОК ЕЛЕМЕНТУ УПРАВЛІННЯ COMBOBOX АБО LISTBOX З ДАНИМИ В WINDOWS FORMS

Можна зв’язати елемент управління ComboBox і елемент управління ListBox для виконання таких завдань як перегляд даних в базі даних, введення нових даних і зміна існуючих даних.

Виконання прив’язку для елементу управління ComboBox або ListBox виконується наступним чином:

1. Задати для властивості DataSource об’єкт джерела даних. Можливі джерела даних — пов’язана з даними BindingSource, таблиця даних, представлення даних, набір даних, диспетчер представлень даних, масив, а також будь-який клас, що реалізовує інтерфейс IList.

При прив’язці таблиці треба встановити для властивості DisplayMember значення, рівне імені стовпця в джерелі даних.

або

2. При прив’язці до елементу управління IList вказати елемент відображення як значення властивості типа в списку.

Private Sub BindComboBox()

ComboBox1.DataSource = DataSet1.Tables("Suppliers")

ComboBox1.DisplayMember = "ProductName"

End Sub

 

СТВОРЕННЯ ТАБЛИЦІ ПІДСТАНОВКИ ДЛЯ ЕЛЕМЕНТУ УПРАВЛІННЯ COMBOBOX, LISTBOX АБО CHECKEDLISTBOX В WINDOWS FORMS

Інколи корисно відображувати дані в зручному для користувача форматі у формі Windows Forms, і при цьому зберігати їх у форматі, потрібному у використовуваній програмі. Наприклад, в бланку замовлення продуктів харчування можуть відображуватися елементи меню по їх імені в списку елементів. Проте таблиця даних реєстрації замовлення міститиме унікальні ідентифікатори, що представляють продукти харчування. У наступній таблиці представлений приклад зберігання і відображення даних бланка замовлення продуктів харчування.

OrderDetailsTable

ORDERID Код елементу Кількість
     
     

ItemTable

ID Ім'я
  Картопля
  Курча

У цьому сценарії одна таблиця, OrderDetailsTable, містить фактичні відомості, що цікавлять з точки зору відображення і збереження. Проте з метою економії місця вони представлені в незручному для сприйняття вигляді. Інша таблиця, ItemTable, включає лише дані, пов’язані з представленням даних, а саме про те, який код якому продукту відповідає, дані про фактичні замовлення продуктів в ній відсутні.

Таблиця ItemTable зв’язується з елементом управління ComboBox, ListBox або CheckedListBox за допомогою трьох властивостей. Властивість DataSource містить ім’я даної таблиці. Властивість DisplayMember містить стовпець даних тієї таблиці, який необхідно відображувати в елементі управління (назва продукту). Властивість ValueMember містить стовпець даних таблиці з даними, що зберігаються (ідентифікатор).

Таблиця OrderDetailsTable зв’язується з елементом управління за допомогою колекції прив’язок, доступних через властивість DataBindings. При додаванні об’єкту прив’язки в колекцію властивість елементу управління зв’язується з конкретним елементом даних (стовпцем коду) в джерелі даних (таблиці OrderDetailsTable). Коли в елементі управління зроблений вибір, в даною таблицею зберігаються дані, що вводяться.

Створення таблиці підстановок:

1. Додати на форму елемент управління ComboBox, ListBox або CheckedListBox.

2. Реалізувати підключення до джерела даних.

3. Встановити зв’язок між даними в двох таблицях.

4. Задати наступні властивості. Вони можуть бути задані в коді або в конструкторі.

Властивість Параметр
DataSource Таблиця, в якій містяться відомості про те, якому коду відповідає який елемент. У наведеному вище сценарії це ItemTable.
DisplayMember Стовпець таблиці джерела даних, яке необхідно відображувати в елементі управління. У наведеному вище сценарії це "Ім'я" (для завдання в коді використовуйте лапки).
ValueMember Стовпець таблиці джерела даних, яке містить інформацію, що зберігається. У наведеному вище сценарії це "ID" (для завдання в коді використовуйте лапки).

5. У процедурі викликається метод Add класу ControlBindingsCollection для прив’язки властивості SelectedValue елементу управління до таблиці, що реєструє введення форми. Крім того, замість коду це можна зробити в конструкторі за допомогою властивості DataBindings елементу управління у вікні властивостей. У наведеному вище сценарії це OrderDetailsTable, а стовпець — ITEMID.

ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ITEMID")



Поделиться:


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

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