ПОНЯТНО О Visual Basic NET (том 3)




Заполняем TreeView в коде - часть 5


Теперь разберем процедуру для кнопки Переименуй. Ее работа – ключ к пониманию работы других процедур. Переименовывать имеет смысл только тогда, когда дерево не пусто и когда на дереве имеется выделенная вершина. Оператор If в этой процедуре создан для обработки именно такой ситуации, и его можно перевести так:

      Если общее количество вершин дерева = 0, то

             Сообщай, что дерево пусто

      Иначе если не существует выбранной вершины, то

             Сообщай, что надо бы выбрать вершину

      Иначе

             Переименовывай вершину.

Если объект не существует, то в VB говорят, что он «есть ничто»,  по-английски –

Is  Nothing

Поэтому выражение

TV.SelectedNode Is Nothing

можно перевести, как «выбранная вершина есть ничто» или «выбранная вершина не существует».

Логика остальных кнопок ясна из их кода. Кнопки Создай сына и Создай брата при пустом дереве добавляют корень, как я и хотел. Строка

            TV.Focus()

возвращает фокус на дерево, что удобно, но не обязательно.

В процедуре для кнопки Создай брата строка

        ElseIf TV.SelectedNode.Parent Is Nothing Then

обрабатывает следующую ситуацию: Если у выбранной вершины не существует родителя, значит это корень, значит брат ему – тоже корень, значит создавать этого брата придется строкой

            TV.Nodes.Add(Вершина)

В процедуре для кнопки Создай сына строка

            Вершина.Parent.Expand()

избавляет от необходимости жать плюсик на родителе, чтобы увидеть только что созданного сына.

Прочее. Теперь было бы неплохо, чтобы работа пользователя по созданию дерева не пропала даром, а для этого нужно дать ему возможность сохранить созданное дерево, а потом загрузить. Но это нетривиальная задача. Отложите ее на будущее. Я ее разбирать не буду, но идею ее решения вы можете почерпнуть в следующем подразделе.




Содержание  Назад  Вперед