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

Для произведения действий с объектами дерева используются обработчики событий 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 Бовыкин

results matching ""

    No results matching ""