Dans VS .NET, lorsque vous sélectionnez un dossier pour un projet, une boîte de dialogue qui ressemble à un OpenFileDialog ou SaveFileDialog est affiché, mais est configuré pour accepter seulement les dossiers. Depuis que j'ai vu ce que j'ai voulu savoir comment c'est fait. Je suis conscient de la FolderBrowserDialog, mais je n'ai jamais vraiment aimé cette boîte de dialogue. Il commence à trop petite et ne me permet pas de prendre avantage de pouvoir tapez un chemin d'accès.
Je suis presque certain maintenant, il n'y a pas moyen de le faire partir .NET, mais je suis tout aussi curieux de voir comment vous le faire à partir de code non managé. Court de complètement de réimplanter la boîte de dialogue à partir de zéro, comment voulez-vous modifier la boîte de dialogue d'avoir ce comportement?
Je tiens également à souligner que je suis conscient de la FolderBrowserDialog mais parfois, je n'aime pas l'utiliser, en plus d'être vraiment curieux de savoir comment configurer une boîte de dialogue de cette manière. Me disant simplement utiliser le FolderBrowserDialog m'aide à maintenir une INTERFACE cohérente de l'expérience, mais ne pas satisfaire ma curiosité, donc il ne compte pas comme une réponse.
Ce n'est pas un Vista spécifiques chose; j'ai été voir cette boîte de dialogue depuis VS .NET 2003, de sorte qu'il est faisable en Win2k et WinXP. C'est moins d'un "je veux connaître la bonne façon de le faire" à la question et plus d'un "j'ai été curieux au sujet de ce depuis que j'ai voulu le faire en VS 2003" question. Je comprends que Vista boîte de dialogue de fichier a une option pour le faire, mais elle fonctionne sous XP donc je sais qu'ils ont fait quelque chose pour le faire fonctionner. Vista-des réponses précises ne sont pas des réponses, parce que Vista n'existe pas dans la question de contexte.
Mise à jour: je suis en acceptant Scott Wisniewski réponse, car il est livré avec un échantillon de travail, mais je pense que Serge a le mérite de pointage de la boîte de dialogue de personnalisation (qui est certes désagréable .NET, mais il n' travail) et la Marque de Rançon pour comprendre que MME roulé probablement un dialogue personnalisée pour cette tâche.