none
Фокусировка скролла TreeView к выбранному раннее элементу. RRS feed

  • Вопрос

  • Добрый день. Такой вопрос: Есть WinForms приложение с treeView с элементами разной вложенности, после определенных изменений при редактировании этого дерева вызывается мой метод RefreshNodeData, который удаляет все элементы из treeView, а затем заполняет снова.  Как мне в начале этого метода сохранить данные об текущем выбранном TreeNode?

    Я делал так: var LastSelectedNode = treeViewCategories.SelectedNode;

    И как уже после перезаполнения снова выделить этот элемент и сфокусировать его относительно полосы прокрутки?

    Попытки вроде 

                    treeViewCategories.SelectedNode = LastSelectedNode;
                    treeViewCategories.SelectedNode.EnsureVisible();
                    LastSelectedNode.EnsureVisible();

    ни к чему не привели. Я думаю это из-за того, что после перезаписи LastSelectedNode больше не имеет отношения к новой коллекции.

    Подскажите, пожалуйста, как быть?

    22 июля 2014 г. 23:43

Ответы

  • Добрый день.

    Запоминайте не саму ноду, а ее характерный признак (название, путь, первичный ключ если у вас это сущность из БД), после перестроения дерева находите ноду удовлетворяющую этому признаку и делайте ее выбранной.

    25 июля 2014 г. 5:48
    Отвечающий