C# для Windows Урок 14. Работаем с TreeView
Три урока мы с вами посвятим изучению элемента управления TreeView.
Он представляет из себя дерево. У этого элемента есть узлы, у каждого
узла могут быть в свойю очередь свои подузлы и т. п.. В элементе
TreeView удобно показывать, например, файловую систему компьютера.
На этом уроке мы посмотрим, как можно добавлять и удалять узлы в и из дерева.
Создайте Windows-приложение, на форме разместите элемент TreeView. На панели Toolbox по выглядит так:
Кроме того разместите на форме три кнопки (Button) и одно текстовое
поле (TextBox). Для кнопок измените свойствО Name на add, remove и
removeAll соответственно. Также для кнопок поменяйте своство Text на
Add, Remove и Remove All соответственно. Для текстового поля измените
свойства Name и Text на addNode и "" (пустую строку).
В обработчики нажатий на три кнопки добавьте следующий код:
// Добавление узла.
private void add_Click(object sender, System.EventArgs e)
{
// Получаем выделенный узел.
TreeNode node = treeView1.SelectedNode;
// Если ничего не выделено,
if(node==null)
{
// то добавляем в корень.
treeView1.Nodes.Add(addNode.Text);
}
else
{
// Если выделенный узел существует,
// то добавляем к нему.
node.Nodes.Add(addNode.Text);
}
// Очищаем текстовое поле и переводим на него фокус.
addNode.Text="";
addNode.Focus();
}
// Удаление узла.
private void remove_Click(object sender, System.EventArgs e)
{
// Получаем выделенный узел.
TreeNode node = treeView1.SelectedNode;
// Если узел выделен,
if(node!=null)
{
// то его и выделяем.
treeView1.Nodes.Remove(node);
}
else
{
MessageBox.Show("Ничего не выделено");
}
}
// Удаление всех узлов.
private void removeAll_Click(object sender, System.EventArgs e)
{
treeView1.Nodes.Clear();
}
Добавленный код должен быть ясен из комментариев.
Можно запускать программу. После добавления нескольких узлов (имена
которых мы вводим в текстовое поле) она может выглядеть она будет
приблизительно так:
Обратите внимание, что подузлы будут добавляться к выделенному узлу.
Кнопки Remove и Remove All будут удалять выделенный узел и все узлы соответственно.
|