В функцию не передаётся TreeNode.Tag. Я делаю что то не так?

Делаю текстовый редактор. Хочу чтобы при нажатии на элемент TreeView открывался соответствующий файл, не находящийся в директории с .exe файлом редактора. В функции создания Node-ов я задаю путь до файла в Tag и он выводится, а когда я вывожу его в TreeView_AfterSelect, выводится пустота, ну и файл открыть не получается

C#

    private void ListDirectory(TreeView treeView, string directoryName)
    {
        treeView.Nodes.Clear();
        var rootDirectoryInfo = new DirectoryInfo(directoryName);
        treeView.Nodes.Add(CreateDirectoryNode(rootDirectoryInfo, directoryName));
    }

    private static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo, string directoryName)
    {
        var directoryNode = new TreeNode(directoryInfo.Name);
        foreach (var directory in directoryInfo.GetDirectories())
        {
            directoryNode.Nodes.Add(CreateDirectoryNode(directory, directoryName));
            
        }
        foreach (var file in directoryInfo.GetFiles())
        {
            var filename = new TreeNode(file.Name);
            directoryNode.Nodes.Add(filename);
            directoryNode.Tag = directoryName + "\\" + file.Name;
            MessageBox.Show((string)directoryNode.Tag); // здесь Tag выводиться нормально

        }
        return directoryNode;
    }

    private void открытьПапкуToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog FBD = new FolderBrowserDialog();
        FBD.ShowNewFolderButton = true;
        if (FBD.ShowDialog() == DialogResult.OK)
        {
            treeView.Nodes.Clear();
            var DI = new DirectoryInfo(FBD.SelectedPath);
            ListDirectory(treeView, FBD.SelectedPath);
            treeView.AfterSelect += TreeView_AfterSelect;
        }

    }

    private void TreeView_AfterSelect(object sender, TreeViewEventArgs e)
    {
        string file = (string)e.Node.Tag;
        MessageBox.Show(file); // здесь Tag пустой
        if (File.Exists(file))
        {
            string filetext = File.ReadAllText(file);
            textBox.Text = filetext;
        }
    }

Ответы (0 шт):