Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Wladimir2003
0 / 0 / 0
Регистрация: 27.11.2020
Сообщений: 83
.NET 6

Как лучше сделать навигацию по приложению через TreeView

13.01.2023, 11:15. Показов 691. Ответов 5

Студворк — интернет-сервис помощи студентам
В общем есть макет приложения. В нем сделан вывод различных отделов через TreeView в виде древовидной структуры. Сама программа служит для ввода/вывода информации в/из БД. В базе данных есть различные таблицы, соответствующие различным отделам. Соответственно, основная задача заключается в том, что бы при выборе одного из разделов выводились данные из "его" таблицы.
Есть вариант по нажатию на узел менять текст Label, и потом используя его действовать дальше. Но... выглядит это как костыль. Можно еще создавать новые формы, но выглядит не самым лучшим вариантом, как если надо будет пробежаться по нескольким узлам, возникнет чехарда этих окон. Еще приходит в голову создать несколько Panel, скрыть их все, и в соответствии с выбранным узлом Treeview отображать соответствующую.
Может есть еще какие-нибудь варианты?
Миниатюры
Как лучше сделать навигацию по приложению через TreeView  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2023, 11:15
Ответы с готовыми решениями:

Как лучше сделать постраничную навигацию?
Подскажите пожалуйста как лучше сделать постраничную навигацию для таблицы,с помощью фрейморка codrigniter можно сделать постраничную...

Как в WPF осуществлять навигацию по приложению?
В интерфесах я совсем новичок. В андроид приложениях она осуществляется посредством Activities, а как переходить с одного места в другое в...

Как лучше в TreeView сделать выделение item'a жирным по DoubleMouseClick
Собственно я сделал так: private void treeView1_MouseDoubleClick(object sender, MouseButtonEventArgs e) { ...

5
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
13.01.2023, 12:14
Цитата Сообщение от Wladimir2003 Посмотреть сообщение
Есть вариант по нажатию на узел менять текст Label, и потом используя его действовать дальше
Не понятно что менять и что потом использовать. Причем тут label, как он может повлиять на ввод и вывод-информации.

Цитата Сообщение от Wladimir2003 Посмотреть сообщение
Можно еще создавать новые формы
Почему бы не сделать ввод сразу в dgv?
1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
13.01.2023, 12:18
Лучший ответ Сообщение было отмечено Wladimir2003 как решение

Решение

Цитата Сообщение от Wladimir2003 Посмотреть сообщение
Может есть еще какие-нибудь варианты?
Есть, например просто в сетку помещать соответствующую таблицу данных, связанную с выбранным узлом дерева.
Цитата Сообщение от Wladimir2003 Посмотреть сообщение
Есть вариант по нажатию на узел менять текст Label, и потом используя его действовать дальше.
Зачем? Либо используйте свойство Tag, для хранения связанных с узлом данных, либо переопределите класс узла и расширьте его нужными членами.
1
 Аватар для Wladimir2003
0 / 0 / 0
Регистрация: 27.11.2020
Сообщений: 83
13.01.2023, 12:59  [ТС]
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Почему бы не сделать ввод сразу в dgv?
Цитата Сообщение от Uswer Посмотреть сообщение
Зачем? Либо используйте свойство Tag, для хранения связанных с узлом данных, либо переопределите класс узла и расширьте его нужными членами.
Что-то вроде такого, верно?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            var r = treeView1.SelectedNode.Tag;
            label2.Text = r.ToString();
            switch (r)
            {
                case "Semiproducts_WH":
                    {
                        label1.Text = "Склад полуфабрикатов";
                        using (ZebtContext db = new())
                        {
                            // получаем объекты из бд и выводим на консоль
                            var materials_whs = db.SemiproductWhs.ToList();
                            BindingSource bindingSource = new BindingSource();
                            bindingSource.DataSource = materials_whs;
                            dataGridView1.AutoGenerateColumns = true;
                            dataGridView1.DataSource = bindingSource;
                            //bindingNavigator1.BindingSource = bindingSource;
                        }
                    }
                    break;
                default:
                    {
                        using (ZebtContext db = new())
                        {
                            // получаем объекты из бд и выводим на консоль
                            var materials_whs = db.MaterialsWhs.ToList();
                            BindingSource bindingSource = new BindingSource();
                            bindingSource.DataSource = materials_whs;
                            dataGridView1.AutoGenerateColumns = true;
                            dataGridView1.DataSource = bindingSource;
                            //bindingNavigator1.BindingSource = bindingSource;
                        }
                    }
                    break;
            }
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
15.01.2023, 15:57
Цитата Сообщение от Wladimir2003 Посмотреть сообщение
верно?
Да, если сильно не заморачиваться, то этого вполне достаточно.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
16.01.2023, 16:05
Накидал проект для варианта "чуть сложнее", однако и в нём используется свойство Tag узла.
Вложения
Тип файла: zip ChangeUIonTreeNodeSelect.zip (17.7 Кб, 18 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2023, 16:05
Помогаю со студенческими работами здесь

Перенос узлов TreeView между формами. Как лучше сделать?
Создал несколько форм, расположил на формах treeview пару кнопок, как сделать так, что бы этот treeview отражался на 2ой форме ...

Как лучше организовать навигацию в приложении?
разрабатываю приложение-путеводитель по моему городу.Создал вкладку с фрагментом внутри для разделения мест по категориям.по задумке, при...

Curses Python как лучше реализовать навигацию по меню?
Есть окно с выведенными пунктами которые формируются динамически, хочу сделать возможность выбора: ------Меню------ 1. Пункт первый ...

Запретить навигацию по TreeView клавишами
В TreeView реализована навигация по дереву с помощью клавиш. Можно ли ее отключить? Или, точнее, нужно сделать, чтобы она в одних ситуациях...

Как сделать поиск по название Node в TreeView через TextBox
Здравствуйте! Мне нужно сделать поиск по названию. Примерно как выглядит форма показано ниже. Подробнее. В TextBox написал слово...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru