|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
.NET 4.x Отображение и управления папками и файлами внутри списка папок22.10.2023, 20:19. Показов 4449. Ответов 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 списка найденных файлов и папок Отображение списка текстовых файлов внутри программы Создание папок с несколькими вложенными папками по названию в ячейки Разработка подсистемы управления файлами со способом физической организации файла в виде связанного списка блоков Скопировать из разных папок в одну с под папками и разными расширениями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|