Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
15.01.2021
Размер:
289.09 Кб
Скачать
  1. Видалення вузла.

Додамо на форму кнопку Видалити вузол. Видаляти будемо вибраний вузол (властивість SelectedNode).

private void btnRemoveNode_Click(object sender, EventArgs e)

{

//Видалити вузол

TreeNode node= treeView1.SelectedNode;

treeView1.Nodes.Remove(node); //видалення node

}

  1. Додавання (вставка) вузлів

При додаванні вузлів можливі 2 підходи:

  1. Вставити конкретний вузол до визначеного вузла. Наприклад, додати до вузла Групи нову групу К-61. Ця дія подібна до додавання вузлів дерева у методі CreateTree.

  2. Вставити довільний вузол в довільне місце дерева. Цей підхід потребує створення полів для введення назви поля (Text) і його ідентифікатора (Name). Цей підхід є універсальним, а вставка виконується для виділеного вузла.

Реалізуємо другий підхід. Для цього розмістимо на формі елемент управління GroupBox з назвою Додавання вузла, в якому розмістимо 2 підписи, 2 текстові поля і кнопку Додати вузол.

Призначимо назви елементам управління:

txtNameNode

Поле для властивості Name вузла

txtTextNode

Поле для властивості Text вузла

btnAddNode

Властивість Name для кнопки

В обробнику кнопки Додати вузол Реалізуємо додавання нового під-вузла до виділеного вузла.

private void btnAddNode_Click(object sender, EventArgs e)

{

//Додати новий вузол до виділеного

//Знаходимо виділений вузол

TreeNode SelectNode = treeView1.SelectedNode;

// перевіряємо, чи введені дані в поля

if ((txtNameNode.Text.Length != 0) & (txtTextNode.Text.Length != 0))

{

//Вставляємо підвузол до виділеного вузла

SelectNode.Nodes.Add(txtNameNode.Text, txtTextNode.Text);

}

else

MessageBox.Show("Вузол не може бути пустм");

//Очистка текст.полів

txtNameNode.Text = " ";

txtTextNode.Text = "";

SelectNode.Expand(); // робимо вузол видимим на дереві

}

Інший спосіб додавання вузла наведено тут:

https://codeby.net/threads/kak-dinamicheski-dobavit-uzel-v-treeview.65590/

  1. Робота з листями дерева.

В нашому прикладі реалізуємо такий функціонал для роботи з листям (кінцевими вузлами, які не маєть нащадків). При виборі групи у список ListBox виводиться список прізвищ групи.

Створимо списки прізвищ груп з використанням колекції List<>.

//Списки студентів

List<string> listK71 = new List<string>();

listK71.Add("Зайченко Артем");

listK71.Add("Костюк Євгеній");

listK71.Add("Кузнєцов Дмитро");

List<string> listPI71 = new List<string>();

listPI71.Add("Данилов Олександр");

listPI71.Add("Коваленко Сергій");

listPI71.Add("Кравченко Дмитро");

Додамо на форму список ListBox. Його властивості Name призначимо listStudent. Для заповнення списку скористаємося прив’язкою:

listStudent.DataSource = listPI71;

Напишемо обробник події AfterSelect, яка спрацьовує після вибору вузла дерева.

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

//Обробник події, яка генерується після вибору вузла

//Списки студентів

List<string> listK71 = new List<string>();

listK71.Add("Зайченко Артем");

listK71.Add("Костюк Євгеній");

listK71.Add("Кузнєцов Дмитро");

List<string> listPI71 = new List<string>();

listPI71.Add("Данилов Олександр");

listPI71.Add("Коваленко Сергій");

listPI71.Add("Кравченко Дмитро");

//Вибір виділеного вузла і виведення в ListBox списку групи

TreeNode node = treeView1.SelectedNode;

if (node.Name== "PI71")

listStudent.DataSource = listPI71;

if (node.Name == "К71")

listStudent.DataSource = listK71;

}

https://metanit.com/sharp/windowsforms/4.13.php