Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2016, 08:47   #1
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
Восклицание treeView, указать ветку через название, а не через номер

Добрый день!

Помогите, пожалуйста. Есть treeView с тремя ветками. Каждый объект aT проверяется на соответствие категории. FindNodeByName осуществляет поиск дочерней ветки "2x2" в treeView1.Nodes[0]. Если такой ветки нет, то он создает и объект должен быть добавлен в новую созданную ветку как дочерний. Если же ветка с указанным названием существует, то объект сохраняется в ней как новая дочерняя ветка. Подскажите, как указать ветку через название, а не через номер. Либо как можно с помощью названия определить номер ветки. Или как вообще узнать какой последний номер ветки


Код:
  treeView1.BeginUpdate();
            treeView1.Nodes.Add("Первая");
            treeView1.Nodes.Add("Вторая");
            treeView1.Nodes.Add("Третья");
            foreach (var aT in acc_t)
            {
                if(aT.sim=="Первая")
                {
                    if (FindNodeByName(treeView1.Nodes[0], "2x2") == null) 
                    {
                        treeView1.Nodes[0].Nodes.Add("2x2");
                    }
                        treeView1.Nodes[0].Nodes[0].Nodes.Add("Куб");
                }
 
                if (aT.sim == "Вторая")
                {
                    if (FindNodeByName(treeView1.Nodes[1], "3x4") == null)
                    {
                        treeView1.Nodes[1].Nodes.Add("3x4");
                    }
                    treeView1.Nodes[1].Nodes[0].Nodes.Add("Прямоугольник");
                }
Maray вне форума Ответить с цитированием
Старый 02.08.2016, 13:18   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если вы посмотрите внимательнее, то увидите что свойство Nodes имеет два индексатора, номер и строка.
по поводу добавления. метод Add вам дает ветку которую создали.
то проще сделать так:
Код:
var node=FindNodeByName(treeView1.Nodes[1], "3x4");
                    if (node == null)
                    {
                        node==treeView1.Nodes[1].Nodes.Add("3x4");
                    }
                    node.Nodes.Add("Прямоугольник");
еще у Nodes есть метод Find что может найти все ветки с указанным ключом, в том числе внутри дочерних ключей если надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 02.08.2016 в 13:23.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.08.2016, 16:03   #3
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если вы посмотрите внимательнее, то увидите что свойство Nodes имеет два индексатора, номер и строка.
по поводу добавления. метод Add вам дает ветку которую создали.
то проще сделать так:
Код:
var node=FindNodeByName(treeView1.Nodes[1], "3x4");
                    if (node == null)
                    {
                        node==treeView1.Nodes[1].Nodes.Add("3x4");
                    }
                    node.Nodes.Add("Прямоугольник");
еще у Nodes есть метод Find что может найти все ветки с указанным ключом, в том числе внутри дочерних ключей если надо.
Спасибо за помощь!
Maray вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как указать размер div через javascript? Игорь5027 JavaScript, Ajax 1 30.07.2015 16:18
через API получаю полный путь и название процесса, а получаю только название процесса Den7656 Win Api 5 12.09.2011 09:03
Редактирование В stringgrid название столбцов через Edit Weyner Общие вопросы Delphi 2 21.10.2010 21:15
как указать строки и столбцы через popupMenu robin39 Помощь студентам 6 19.05.2010 09:08
Открытие файлов через TreeView Xardas Общие вопросы Delphi 12 29.03.2008 11:30