Вызов альтернативного диалога выбора папки, аля VS. Как?
В VS2010, при создании нового проекта, предлагают выбрать директорию, в которой он будет базироваться. При этом вызывается диалог, всеми родинками похожий на OpenFileDialog, только без фильтра, отображающий только папки и с кнопкой "Выбор папки" вместо "Открыть". Вопрос всего один - как его добыть и использовать в своих приложениях? FolderBrowserDialog - штука до омерзения неудобная! Поковырялся рефлектором в OpenFileDialog - он тащит за собой кучу внутренних классов и методов, разразосся на 2к строк и мне показалось, что дальнейшее его восстановление - процесс более трудоемкий, чем написание собственной формочки. А потом вспомнил про то, что такую формочку я уже где-то видел. Если это возможно сделать - подскажите, пожалуйста, как?
Заранее спасибо.
Ну это ихний собственный диалог. Не думаю что он доступен отдельно в какой-либо assembly, или что ее можно распространять со своим приложением. А про какую виденную формочку речь - не очень понял.
Очень жаль. Если бы его можно было хотя бы расковырять... распространение - дело десятое. Пишу для внутреннего пользования... Эх, придется, видимо, все-таки смастерить собственную форму. Можно, конечно, унаследоваться от CommonDialog, но я все еще очень слабо представляю себе взаимодействие внутренностей контролов...
У меня,наверное,не очень приличный,но всё же вопрос–зачем городить своё,если в системе есть удобные для этого функции?
[ATTACH]5168[/ATTACH]
@pixo $oft
Никогда не изобретаю велосипеды, если есть уже готовые решения. Увы, удобных решений нет.
1) FolderBrowserDialog не позволяет выбрать несколько папок - мне нужно несколько.
2) FolderBrowserDialog - это ужасно неудобная хреновина с деревом каталогов, без возможности ввода пути ручками (скопировал из открытого explorer\far\total 'а), с необходимостью каждый раз (при каждом запуске программы) переходить в нужную папку, раскрывая по очереди все вышестоящие. Единственный способ указания пути - RootFolder (или как его), который ограничивает область видимости. Итого - ужас, которым невозможно пользоваться. Не зря мелкомягкие нарисовали свой диалог в VS. А мне сейчас хочется его воспроизвести, облагородить, и засунуть в шкуру контрола.
Цитата: Vitamant
FolderBrowserDialog не позволяет выбрать несколько папок - мне нужно несколько
Что-то не заметил этого в твоих постах,вот и удивился.А вообще,есть не только компоненты WinForms,может статься,что другими средствами задача решается легче
Какими например? В том же WPF точно такой же диалог. Его точно также придется переписывать. :) Собственно, на WPF написать изначально и хотел, однако пишу под чужую платформу с использованием SDK, который пока поддерживает только WinForms.
пруф
[quote=msdn]
Open Folder
* For new programs, use the Open Files dialog in the "pick folders" mode. Doing so requires Windows Vista or later, so use the Open Folder dialog for programs that run in earlier versions of Windows.
o Developers: You can use the Open Files dialog in the "pick folders" mode by using the FOS_PICKFOLDERS flag.
[/quote]
А вот пример на C# (если виста и выше вызывается новый диалог, если XP и ниже - старый)
P.S. и ещё с мсдн'а:
Цитата:
Use the common dialogs for a consistent user experience. Don't create your own.
P.S. В любом случае - спасибо за расширение кругозора!
у иностранцев кстати предлагается делать это на основе treeview,
не знаю как там что, не особо вникал.
они там ещё хотели и файлы выбирать тем же диалогом.
этот диалог немного доработать бы и хорошо будет совсем.
ну файлы выбрать я наверное и сам приделаю если понадобится.
сейчас пока мне только папки выбирать надо.
ещё раз спасибо.