1 / 1 / 0
Регистрация: 24.08.2010
Сообщений: 9

Добавление элементов в TreeView

20.09.2010, 15:30. Показов 3185. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно добавить эллементы в TreeView по нажатию кнопки?

Вот так:
C++
1
2
3
4
5
6
7
System::Windows::Forms::TreeNode^  treeNode7 = (gcnew System::Windows::Forms::TreeNode(L"Ветвь"));
            System::Windows::Forms::TreeNode^  treeNode8 = (gcnew System::Windows::Forms::TreeNode(L"Корень", gcnew cli::array< System::Windows::Forms::TreeNode^  >(1) {treeNode7}));
            treeNode7->Name = L"name1";
            treeNode7->Text = L"Name1";
            treeNode8->Name = L"name2";
            treeNode8->Text = L"Name2";
            this->treeView1->Nodes->AddRange(gcnew cli::array< System::Windows::Forms::TreeNode^  >(1) {treeNode8});
я могу добавляю, но если изначально, при написание программы не известно, что я хочу добавить (например читаю из файла), то как?

Я пытался создать массив, и добавлять в цикле, но неполучается, пытался как-то так:

C++
1
2
3
4
5
6
for (int i=0; i<10; i++){
            System::Windows::Forms::TreeNode^  treeNodeArray[i] = (gcnew System::Windows::Forms::TreeNode(i));
            treeNodeArray[i]->Name = i;
            treeNodeArray[i]->Text = i;
            this->treeView1->Nodes->AddRange(gcnew cli::array< System::Windows::Forms::TreeNode^  >(1) {treeNodeArray[i]});
}
Подскажите пожалуйста, как нужно делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2010, 15:30
Ответы с готовыми решениями:

Добавление подузлов в TreeView
Проблема с созданием под узлов в дереве, непонятен синтаксис Добавление узла выглядит так: TreeNode ^node = gcnew...

Добавление узлов/подузлов в TreeView
Пытаюсь разобраться с Формами, написал функции которые должны выводить в treeView список каталогов(дисков) с подкаталогами, но при запуске...

Добавление и удаление элементов TreeView
Могли бы помочь с заданием?: Создать приложение, содержащее элемент управления TreeView. Реализовать возможность добавления...

3
 Аватар для Wasdf
0 / 0 / 0
Регистрация: 10.07.2021
Сообщений: 33
09.07.2025, 20:23
https://learn.microsoft.com/ru... ew-control

тут все написано
0
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
10.07.2025, 09:13
Цитата Сообщение от Vinik Посмотреть сообщение
C++
1
2
3
4
5
6
for (int i=0; i<10; i++){
            System::Windows::Forms::TreeNode^  treeNodeArray[i] = (gcnew System::Windows::Forms::TreeNode(i));
            treeNodeArray[i]->Name = i;
            treeNodeArray[i]->Text = i;
            this->treeView1->Nodes->AddRange(gcnew cli::array< System::Windows::Forms::TreeNode^  >(1) {treeNodeArray[i]});
}
Ну это дичь какая-то, вы создаёте массив из одного элемента и добавляете его каждый раз...
Правильный подход — создать список или массив узлов, заполнить его, а затем один раз добавить в TreeView. Или, если данные поступают построчно, добавлять узлы по мере чтения.
0
 Аватар для Wasdf
0 / 0 / 0
Регистрация: 10.07.2021
Сообщений: 33
19.07.2025, 10:06
Все что нужно делать, как сказал человек выше - создавать ноды, добавлять их в какой-то список, а уже потом добавлять как детей к уже существующей ноде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// пустой узел, к которому мы будем добавлять список nodes
System::Windows::Forms::TreeNode^ node = gcnew System::Windows::Forms::TreeNode();
 
// пустой список узлов "детей"
cli::array<System::Windows::Forms::TreeNode^>^ nodes = gcnew cli::array<System::Windows::Forms::TreeNode^>(10);
 
// кол-во итераций должно совпадать с кол-вом выделенных пустых мест в nodes, в противном случае либо будет out of range, либо ошибка, что вы передали пустые узлы в древо
for (int i = 0; i < 10; i++)
{
    nodes[i] = gcnew System::Windows::Forms::TreeNode("Имя узла детей");
}
 
// Так добавишь весь список к одному узлу, а потом добавишь его к TreeView
//node = gcnew System::Windows::Forms::TreeNode("Имя главного узла", nodes);
//this->treeView1->Nodes->Add(node);
 
// Так добавишь весь список сразу к TreeView
//this->treeView1->Nodes->AddRange(nodes);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2025, 10:06
Помогаю со студенческими работами здесь

Добавление элементов в TreeView на основе существующих
Привет! Никогда не работал с TreeView, но сейчас пришлось:(. Нужно создать несколько десятков одинаковый ветвей, потом заполнять их....

Добавление узлов в TreeView
Долго и честно бьюсь - не доходит! Почему так работает: Set objNode = .Add(, , 'Продукты', 'Продукты') Set objNode = .Add(, ,...

Добавление элемента в treeView
Добрый день! Помогите, пожалуйста. Есть дерево treeview. В нем есть три главные ветки. В этих ветках есть множество дочерних. Есть...

Добавление узлов в TreeView
Здравствуйте. Суть такова : 1.Есть строка, являющаяся путем к директории или файлу (Например,...

Добавление в treeView данные из БД
Имеется БД с ссылками на изображения типа &quot;Folder1\Folder2\Image1.jpg&quot;. В программе ссылки разбиваются на части т.е. Folder1, Folder2 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru