21. Построение деревьев в экранной форме.
Класс TreeView
Класс TreeView
предоставляет компонент для отображения дерева в экранной форме приложения WinForms и WPF. TreeView
содержит коллекцию узлов Nodes
в котором содержатся узлы отображаемого дерева. Иерархия дерева обеспечивается тем, что у каждого узла могут существовать дочерние узлы, содержаащиеся в его коллекции Nodes
.
private void InitializeTreeView()
{
treeView1.BeginUpdate();
treeView1.Nodes.Add("Parent");
treeView1.Nodes[0].Nodes.Add("Child 1");
treeView1.Nodes[0].Nodes.Add("Child 2");
treeView1.Nodes[0].Nodes[1].Nodes.Add("Grandchild");
treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("Great Grandchild");
treeView1.EndUpdate();
}
Вызов метода BeginUpdate()
отключает перерисовку дерева в экранной форме при добавлении элементов, чтобы при добавлении большого количества элементов не перерисовывать дерево каждый раз.
Метод EndUpdate()
возобновляет перерисовку при добавлении новых элементов.
Этот код создаст следующую структуру дерева:
- Parent
- Child 1
- Child 2
- Grandchild
- Great Grandchild
- Grandchild
Для произведения действий с объектами дерева используются обработчики событий TreeView
. Обычно это события NodeMouseClick
и NodeMouseDoubleClick
которые вызываются соответственно при однократном и двукратном щелчке мыши по узлу дерева.
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication23
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Пример добавления узлов дерева, объект treeView1 создан в редакторе форм
treeView1.Nodes.Add("Parent");
treeView1.Nodes[0].Nodes.Add("Child 1");
treeView1.Nodes[0].Nodes.Add("Child 2");
}
// Обработчик события двойного щелчка по узлу дерева
private void treeView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// Получение выбранного двойным щелчком узла дерева.
TreeNode node = treeView1.SelectedNode;
// Вывод окна с текстом данного узла.
MessageBox.Show(string.Format("You selected: {0}", node.Text));
}
}
}
Компонент TreeView
можно использовать для отображения данных, имеющих иерархическую структуру, например файловой системы компьютера, где "ветви" дерева будут представлять папки, а "листья" - файлы, или настроек приложения, сгруппированых по категориям и подкатегориям.
"Вот, при помощи этого дерева можно представить файловую систему на вашем компьютере. Листья в нем будут файлами, все остальные - папками"
Евгений missingdays Бовыкин