В VS .NET, когда вы выбираете папку для проекта, отображается диалоговое окно, которое выглядит как OpenFileDialog или SaveFileDialog, но настроено на прием только папок. С тех пор как я увидел это, я хотел знать, как это делается. Я знаю о FolderBrowserDialog, но мне никогда не нравился этот диалог. Он начинается слишком мало и не позволяет мне воспользоваться возможностью набирать путь.
Я почти уверен, что сейчас нет способа сделать это из .NET, но мне так же любопытно, как вы делаете это и из неуправляемого кода. Если не считать полного переопределения диалога с нуля, как вы измените диалог, чтобы иметь такое поведение?
Я также хотел бы повторить, что я знаю о FolderBrowserDialog, но иногда мне не нравится его использовать, в дополнение к искреннему любопытству, как настроить диалог таким образом. Указание мне просто использовать FolderBrowserDialog помогает мне поддерживать постоянный интерфейс, но не удовлетворяет мое любопытство, поэтому оно не считается ответом.
Это не специфичная для Vista вещь; Я видел этот диалог начиная с VS .NET 2003, поэтому его можно использовать в Win2k и WinXP. Это не вопрос «я хочу знать, как правильно это сделать», а вопрос «мне было любопытно с тех пор, как я впервые захотел сделать это в VS 2003». Я понимаю, что в файловом диалоге Vista есть возможность сделать это, но он работает в XP, поэтому я знаю, что они сделали что-то , чтобы заставить его работать. Ответы, специфичные для Vista, не являются ответами, потому что Vista не существует в контексте вопроса.
Обновление: я принимаю ответ Скотта Вишневского, потому что он идет с рабочим образцом, но я думаю, что Серж заслуживает похвалы за указание на настройку диалога (что, по общему признанию, неприятно из .NET, но делает работа) и Марка Рэнсома для выяснения, что MS, вероятно, развернула специальный диалог для этой задачи.