|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
.NET 4.x Отображение и управления папками и файлами внутри списка папок22.10.2023, 20:19. Показов 4531. Ответов 47
Метки нет (Все метки)
Здравствуйте. Нужен элемент или набор элементов чтобы организовать вывод и управление папками и файлами внутри списка папок проекта.
Список папок проекта это список объектов класса хранящих имя проекта и полный путь до папки проекта.
К слову за пределы папки с проектом нельзя должно быть выходить только в пределах списка папок с проектами тобишь они и то что в них. Подскажите пожалуйста какой элемент для этого взять. Хорошо бы отображение делать в виде дерева но TreeView во первых не даёт делать выделение нескольких элементов а во вторых не очень предназначен для хранения большого количества элементов в том плане что обновление например при переименовании и удалении будет происходить очень долго.
0
|
||||||
| 22.10.2023, 20:19 | |
|
Ответы с готовыми решениями:
47
Процедура удаления папок со вложенными файлами и папками
Отображение списка файлов и папок в каталоге. |
| 27.10.2023, 14:23 | |||
|
Alexandr_7, главное чтоб в итоге работало как задумывалось
Добавлено через 11 минут .DisplayedName.Если папка не корневая, то принудительно возвращать .Name, если корневая - то разрешить задавать произвольное значение.Добавлено через 1 минуту Ну и в конструкторе его тоже инициализировать, разумеется
0
|
|||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 27.10.2023, 14:57 [ТС] | ||||||
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 29.10.2023, 05:56 [ТС] | ||||||
|
Кстати а можно такой дизайн сделать у TreeListView:
В TreeView такой дизайн я делаю:
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 31.10.2023, 16:22 [ТС] | |
|
Не могу вообще разобраться с настройкой дизайна columns например сделать 2 поля размер которых первого был по размеру текста а второй всю область.
Добавлено через 32 минуты Ещё мне также необходимо чтобы выделялись все Columns а не только первый в котором я планирую отображать тип данных
0
|
|
| 31.10.2023, 16:39 | |||
.FillsFreeSpace?.FullRowSelect?
0
|
|||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 31.10.2023, 19:24 [ТС] | |
|
Окей. Следующее что нужно сделать это вместо плюсиков рисовать стрелочки ну короче как в проводнике винды.
Добавлено через 28 минут Ещё не могу разобраться с отображением иконки.
0
|
|
| 01.11.2023, 09:58 | |
|
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|||
| 01.11.2023, 11:21 [ТС] | |||
|
0
|
|||
| 01.11.2023, 13:32 | ||||
0
|
||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|||||||
| 20.01.2024, 20:54 [ТС] | |||||||
|
Короче не особо могу разобраться с этим куском:
Если писать в колумн имя свойства с полным именем на файл то всё равно ошибка Экземпляр объекта не указывает на объект. Добавлено через 1 час 27 минут Разобрался. Просто в GetColumn вместо имени поставил индекс колумна. Но я не понимаю почему когда я ставлю UseExplorerTheme то дерево не отображается а только корневые папки. Какойто бред. Добавлено через 1 час 13 минут Мне нужно использовать стиль провордника винды для TreeListView и ещё открывать и закрывать итемы двойным кликом. UseExplorerTheme судя по всему неработает у TreeListView а только у ObjectListView
0
|
|||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 10.08.2024, 20:22 [ТС] | ||||||
|
Подскажите как после обновления (обнуления Roots и заново присвоения значения) в BrightIdeasSoftware.TreeListView восстановить выделенный элемент. Точнее я могу запомнить:
У свойства Objects нету find да и к томуже это дерево. Надо искать такойже объект во всех. Просто если назад treeListViewProjectData.SelectedObject присвоить объект которого может и не быть наверняка вызовет ошибку. Добавлено через 4 минуты Нет. Это так просто в любом случае наработает.
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 13.08.2024, 14:17 [ТС] | ||||||
Не могу найти способа это сделать.
0
|
||||||
| 14.08.2024, 13:00 | |||||||||||||
|
Alexandr_7,
Ну вариант в лоб: перед строкой 5 получить ссылку на объект соответствующий выделенному элементу ( treeListViewProjectData.SelectedObject / .SelectedObjects). Ну а после 32 строки задать свойства .SelectedObject (или .SelectedObjects для нескольких). Можно еще вызвать метод .EnsureModelVisible() чтобы раскрыть/прокрутить список до выделенного элементаДобавлено через 1 минуту Alexandr_7, А зачем вообще отсоединять коллекцию?
0
|
|||||||||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|||||||||
| 14.08.2024, 14:39 [ТС] | |||||||||
|
Какбы они присваиваются в SelectedObject но никак не открывается ветвь. Вроде бы и присвоена а вроде бы с виду так как будто не выбрано. Добавлено через 6 минут
0
|
|||||||||
|
|
||
| 14.08.2024, 15:10 | ||
BindingList<T>. И тогда, при изменении количества элементов коллекции UI обновится сам...
0
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||
| 14.08.2024, 16:24 [ТС] | ||
|
0
|
||
|
|
|||
| 14.08.2024, 16:47 | |||
|
Alexandr_7, если сильно приближенно, то тебе нужны три класса:
Root - это корни всех "проектов/папок", т.е. выше их иерархия не строится;Folder - папки, которые находятся внутри Root'ов а так же, могут быть вложены друг в друга;File - класс файлов, могут быть как внутри Root'ов, так и внутри Folder'ов.Во всех этих классах должно быть свойство типа bool IsSelected, которое отражает факт - выбран/не выбран был элемент в списке (коллекции).Далее, в отображаемом дереве или что там у тебя - при выделении элемента(ов) соотв. их свойства IsSelected устанавливаются. Таким образом в коллекции привязки у тебя уже определены выделенные элементы, которые легко получить, например так: var selectedItems = collection.Where(i => i.IsSelected == true);Обходим снова "дерево" и устанавливаем у его элементов свойство Selected, согласно полученной выше коллекции. Таких элементов может быть как один, так и несколько. Добавлено через 2 минуты Короче, нафантазировать можно что угодно как это реализовать.
0
|
|||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||||||||||||||||||
| 14.08.2024, 16:57 [ТС] | ||||||||||||||||||||||
Функция RefreshNodeProjects() вызывается при смене движка или при отсуствие файла А вообще код пока такой:
0
|
||||||||||||||||||||||
| 15.08.2024, 11:07 | |||||||||
BindingSource напримерДобавлено через 1 час 46 минут
TreeListView для отображения изменений в коллекции совершенно точно не нужно отвязывать/привязывать ее или как-то еще манипулировать свойствами .Objects и .Roots . У TreeListview есть много методов (например, .RebuildAll(), .Refresh()), попробуйте какой вам подойдет.
0
|
|||||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|||||||
| 15.08.2024, 20:24 [ТС] | |||||||
|
Если файл удален или переименован необходимо это всё дело пересобрать заново. Это гарантировано работает если к римеру пользователь удаляет или переименовывает файл через проводник. В данном конкретном случае treeListView необходим только для просмотра и открытия любого файла. Я ни собираюсь заменять проводник ибо там функционала в проводнике ногу сломить тащить весь в свою программу. Да и зачем если это в проводнике есть. У меня есть функция показа и открытия файла или папки в проводнике и этого достаточно. Сам факт в том что если изменить файл через проводник или другим способом то единственный способ обновить данные это заново вызвать свойство AllDirProjects чего явно RebuildAll() делать не будут. Так что мне кажется что когда файлами можно манипулировать извне (да банально проводником винды) то пересобрать это всё в нужно. В другой структуре мне джействительно пересобиравть не нужно и через treeListView делать именно управление древовидным классом но это речь про другое. В данном случае речь о файлах которые можно менять где угодно и должна быть возможность обновить это всё в своей программе с тем чтобы выделденный файл не сбрасывался или выделялось то где он лежал. Естественно пока это возможэно. Тоесть пока Parent не будет равен null. В данном случае дело в том что treeListView отображает не все файлы на компьютере а только все файлы проектов. Добавлено через 29 минут Решил ради интереса проверить через RebuildAll(); не пересобирая каждый раз roots а только 1 раз при выборе движка.
Добавлено через 12 минут Так что без обновления Roots тут никуда не деться. Но в таком варианте действительно выделение не пропадает. Но а толку если обновление и нужно из расчёта того что изменения с файлами были.
0
|
|||||||
| 15.08.2024, 20:24 | |
|
Отображение в ListBox списка найденных файлов и папок Отображение списка текстовых файлов внутри программы Создание папок с несколькими вложенными папками по названию в ячейки Разработка подсистемы управления файлами со способом физической организации файла в виде связанного списка блоков Скопировать из разных папок в одну с под папками и разными расширениями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|