Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение. Подробнее ...

c# работа с элементом управления TreeView

Для начала создадим Windows Forms приложение. После чего добавим на форму элемент управления TreeView, который будет заполняться данными из XML файла.

каркас приложения

 

Добавим в проект XML файл. Если вы не знаете, как это сделать, то можете прочитать об этом здесь

Структура файла:

Затем добавим ссылку типа XmlDocument и путь к xml файлу.

Заполнение TreeView данными из XML файла

Изобретать чего-то нового не будем, а воспользуемся готовым решением с сайта MSDN и просто скопируем код. После чего первую часть кода поместим в обработчик события Load главной формы.

Затем добавим вторую часть скопированного кода

Пробуем запустить приложение, нажимаем кнопку F5.

данные в виде иерархического дерева

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

Работа с элементами

Все примеры этой главы нужно поместить в обработчик события NodeMouseClick элемента управления TreeView.

Благодаря второму параметру «e» мы можем получить любую информацию о выделенном элементе в TreeView.

второй параметр

1. Получить название выделенного элемента

результат

2. Получить индекс выделенного элемента

3. Получить количество дочерних элементов:

4. Изменить название выделенного элемента

результат

5. Изменить название дочернего элемента

новое название

6. Удалить выделенный элемент

Например, удалим VAZ.

удаление элемента

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


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

7. очистить TreeView

Все выше описанные действия затрагивают только данные внутри элемента управления TreeView и не как не отражаются в XML файле. То есть, к примеру, удаляя выделенный элемент, вы удаляете его только из коллекции элементов TreeView, но не из файла XML.

Работа с Xml файлом

Теперь рассмотрим пару примеров, как можно взаимодействовать с XML файлом. Но перед этим дополним графический интерфейс нашего приложения, добавив на форму: 2 лейбла, 2 текстовых поля: txtboxAtrName (имя атрибута), txtboxAtrValue (значение атрибута) и кнопку с надписью «изменить».

GUI

1. Выбрав элемент, мы хотим получить все его атрибуты в виде пары: название и значение.

Например, получим имя и значение атрибута элемента models. Результат на картинке

получение атрибутов

В данном примере для вывода данных используется control Textbox, так как у элементов всего по одному атрибуту. Если же атрибутов будет больше, то используйте другие элементы управления, чтобы получить все значения.

2. Хотим изменить значение какого-либо атрибута в xml файле

Принцип работы прост. Выделяем элемент в TreeView и получаем название и значение его атрибута, используя предыдущий пример.

1 шаг

Затем изменим, значение атрибута в textbox.Value и нажмём кнопку «изменить»

2 шаг

Если сейчас открыть добавленный в проект XML файл то появиться надпись, о том, что файл был изменён и будет предложено обновить информацию в нём.

сообщение

Нажимаем кнопку с надписью «YES», после чего данные внутри XML файла изменяться.

результат

Update

Если загрузка элементов в TreeView происходит слишком медленно, то попробуйте воспользоваться методом BeginUpdate

Видео 1.

Видео 2.

Читайте также:


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Похожие темы

У меня не открывается xml файл, что делать?... Что делать, если не удается открыть xml файл? В этой статье хотелось бы рассмотреть некоторые причины, из-за которых очень часто не удается открыть x...
Деление чисел на ноль в языке c#... Деление на ноль типов с плавающей точкой в языке c# В очередной раз, наткнувшись на видеоурок, в котором создается калькулятор, я обратил внимание на...
Матричный метод решения СЛАУ. Распараллеливание с ... Цель работы: приобретение навыков разработки параллельных программ с использованием OpenMP. Задание: Разработать последовательную и параллель...
Удаление узла в xml документе... Как удалить узел в xml документе? В этой небольшой заметке хочу показать Вам, как удалить узел в xml документе с помощью технологии Linq to XML. И...
В чём отличие между методом Nodes и Descendants?... В чём разница между методом Nodes и Descendants? В этой статье хочу рассказать про метод Descendants и показать его отличие от метода Nodes при работ...