Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 05. Списки.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
103.35 Кб
Скачать

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);

}

}

}

}