Остановка узла просмотра дерева C # при развертывании - PullRequest
1 голос
/ 05 сентября 2011

В моем приложении я использую дерево. Когда пользователь нажимает [+], чтобы развернуть узел, этот узел изменяется на выбранный узел. Как я могу это остановить?

    private void tvFileStructure_BeforeExpand(object sender, TreeViewCancelEventArgs e)
    {
        if (e.Node.Text != "Network")
        {
            int unauthorisedAccessExceptions = 0;

            try
            {
                TreeNode newSelected = e.Node;
                DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag;

                TreeNode child = newSelected.FirstNode;
                if (child.Level < 3)
                {
                    while (child != null)
                    {
                        // Only try to populate if there aren't any children
                        if (child.FirstNode == null)
                        {
                            DirectoryInfo[] subDirs = ((DirectoryInfo)child.Tag).GetDirectories();
                            if (subDirs.Length != 0)
                            {
                                getDirectories(subDirs, child);
                            }
                        }

                        child = child.NextNode;
                    }
                }
            }
            catch (UnauthorizedAccessException)
            {
                unauthorisedAccessExceptions++;
            }

            if (unauthorisedAccessExceptions > 0)
            {
                MessageBox.Show("There were " + unauthorisedAccessExceptions.ToString() + " folder(s) that you do not have access to.", "Warning...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            } 
        }
    }

1 Ответ

0 голосов
/ 02 ноября 2011

Как упомянул Ханс, это не стандартное поведение стандартного WinForms TreeView.Однако вы можете отменить изменение выбора в событии BeforeSelect :

void tvFileStructure_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
    if (iDontWantToSelectThis)
    {
        e.Cancel = true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...