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