
- •Лекція 5. Списки
- •5.1. Види списків. Загальні властивості і методи роботи зі списками
- •5.2. Клас ListBox
- •1. Заповнення списку під час проектування форми (статичне).
- •2. Заповнення списку під час завантаження форми
- •3. Заповнення списку із джерела даних
- •4. Динамічне створення списків
- •6. Заповнення списку файлами з каталогів
- •5.3. Клас ComboBox
- •5.4. Клас CheckedListBox
3. Заповнення списку із джерела даних
Елементи управління ListBox часто використовуються з прив'язкою даних. Джерелом даних може бути масив, поле бази даних, колекції даних, файл, тощо. При цьому вже не можна додавати елементи у список при натисненні на кнопку, через те, що джерело даних не можна змінювати.
Приклад 5.3.
В цьому прикладі джерелом даних є масив шифрів груп. Прив'язка до масиву виконується в методі Form1_Load.
namespace ListBox_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string[] listData = { "K-01", "K-91", "K-81", "K-71", "MK-01", "MK-91" };
private void Form1_Load(object sender, EventArgs e)
{
listBox1.DataSource= listData;
}
}
}
4. Динамічне створення списків
Як і будь-які елементи, списки можна створювати динамічно в коді. Це можна зробити в будь-якому методі форми.
Приклад 5.4.
В цьому прикладі в режимі дизайнера створюється форма, на якій розміщується одна кнопка. При завантаженні форми в події Form1_Load створюється два списки, перший з яких містить назви міст. Для заповнення списку використовується метод Add(). При натисненні кнопки Вибрати в другий список вноситься вибране місто.
namespace ListBox_4_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Text = "Приклад динамічного списку";
list = new ListBox(); //створення об'єкту list
list.Location = new Point(15, 15);
list.Size = new Size(100, 100);
this.Controls.Add(list);
list.Items.Add("Київ");
list.Items.Add("Суми");
list.Items.Add("Львів");
//створюємо другий список
list1 = new ListBox(); //створення об'єкту list
list1.Location = new Point(200, 15);
list1.Size = new Size(100, 50);
this.Controls.Add(list1);
}
//створення змінних типу ListBox
private ListBox list;
private ListBox list1;
private void button1_Click(object sender, EventArgs e)
{
if (list.SelectedItem != null)
//якщо місто вибране - вноcимj у другий список його назву
list1.Items.Add(list.SelectedItem);
else
list1.Items.Add("Нічого не вибрано!");
}
}
}
6. Заповнення списку файлами з каталогів
В .Net є класи для роботи з каталогами файлової системи. Наступний приклад демонструє заповнення списку файлами з каталогу.
Приклад 5.5.
Як і в попередньому прикладі, створимо форму. В конструкторі форми створимо список, в який виведемо імена файлів, розміщених у вказаному каталозі. Для роботи з файлами потрібно підключити простір імен System.IO.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace ListBox_4._5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Text = "Заповнення списку каталогами";
list = new ListBox();
list.Location = new Point(15, 15);
list.Size = new Size(200, 200);
this.Controls.Add(list);
DirectoryInfo fds = new DirectoryInfo("D:\\Distribut");
FileInfo[] files = fds.GetFiles();
foreach (FileInfo file in files)
{
list.Items.Add(file);
}
}
private ListBox list;
}
}
Вибір декількох елементів списку.
Наступний приклад демонструє використання властивості SelectionMode значенням для вибору кількох елементів списку.
Приклад 5.6.
Створимо форму і в режимі проектування розмістимо два списки. Перший список заповнимо при завантаженні форми днями тижня з масиву. В другий список будемо додавати вибрані елементи.
При натисненні на кнопку > вибрані елементи додамо до другого списку.
Обов'язково потрібно очищати другий список, щоб елементи не дублювалися.
namespace ListBox_4._6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string[] Day = { "Понеділк", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя" };
private void Form1_Load(object sender, EventArgs e)
{
//прив'язка списку до масиву
listBox1.DataSource = Day;
//встановлення режиму вибору кількох елементів
listBox1.SelectionMode = SelectionMode.MultiSimple;
}
private void button1_Click(object sender, EventArgs e)
{
listBox2.Items.Clear();
if (listBox1.SelectedItems != null)
{
foreach (string item in listBox1.SelectedItems)
listBox2.Items.Add(item);
}
}
}
}