Lire en anglais

Partager via


FolderBrowserDialog Classe

Définition

Invite l'utilisateur à sélectionner un dossier. Cette classe ne peut pas être héritée.

public sealed class FolderBrowserDialog : System.Windows.Forms.CommonDialog
Héritage

Exemples

L’exemple de code suivant crée une application qui permet à l’utilisateur d’ouvrir des fichiers de texte enrichi (.rtf) dans le RichTextBox contrôle.

// The following example displays an application that provides the ability to 
// open rich text files (rtf) into the RichTextBox. The example demonstrates 
// using the FolderBrowserDialog to set the default directory for opening files.
// The OpenFileDialog class is used to open the file.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

public class FolderBrowserDialogExampleForm : System.Windows.Forms.Form
{
    private FolderBrowserDialog folderBrowserDialog1;
    private OpenFileDialog openFileDialog1;

    private RichTextBox richTextBox1;

    private MenuStrip mainMenu1;
    private ToolStripMenuItem fileMenuItem, openMenuItem;
    private ToolStripMenuItem folderMenuItem, closeMenuItem;

    private string openFileName, folderName;

    private bool fileOpened = false;

    // The main entry point for the application.
    [STAThreadAttribute]
    static void Main()
    {
        Application.Run(new FolderBrowserDialogExampleForm());
    }

    // Constructor.
    public FolderBrowserDialogExampleForm()
    {
        this.mainMenu1 = new MenuStrip();

        this.fileMenuItem = new ToolStripMenuItem();
        this.openMenuItem = new ToolStripMenuItem();
        this.folderMenuItem = new ToolStripMenuItem();
        this.closeMenuItem = new ToolStripMenuItem();

        this.openFileDialog1 = new OpenFileDialog();
        this.folderBrowserDialog1 = new FolderBrowserDialog();
        this.richTextBox1 = new RichTextBox();

        this.mainMenu1.Items.Add(this.fileMenuItem);

        this.fileMenuItem.Text = "File";
        this.fileMenuItem.DropDownItems.AddRange(
            new ToolStripItem[] {
                this.openMenuItem,
                this.closeMenuItem,
                this.folderMenuItem
            }
        );

        this.openMenuItem.Text = "Open...";
        this.openMenuItem.Click += new EventHandler(this.openMenuItem_Click);

        this.folderMenuItem.Text = "Select Directory...";
        this.folderMenuItem.Click += new EventHandler(this.folderMenuItem_Click);

        this.closeMenuItem.Text = "Close";
        this.closeMenuItem.Click += new EventHandler(this.closeMenuItem_Click);
        this.closeMenuItem.Enabled = false;

        this.openFileDialog1.DefaultExt = "rtf";
        this.openFileDialog1.Filter = "rtf files (*.rtf)|*.rtf";

        // Set the help text description for the FolderBrowserDialog.
        this.folderBrowserDialog1.Description =
            "Select the directory that you want to use as the default.";

        // Do not allow the user to create new files via the FolderBrowserDialog.
        this.folderBrowserDialog1.ShowNewFolderButton = false;

        // Default to the My Documents folder.
        this.folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;

        this.richTextBox1.AcceptsTab = true;
        this.richTextBox1.Location = new System.Drawing.Point(8, 40);
        this.richTextBox1.Size = new System.Drawing.Size(280, 312);
        this.richTextBox1.Anchor = (
            AnchorStyles.Top |
            AnchorStyles.Left |
            AnchorStyles.Bottom |
            AnchorStyles.Right
        );

        this.ClientSize = new System.Drawing.Size(296, 360);
        this.Controls.Add(this.mainMenu1);
        this.Controls.Add(this.richTextBox1);
        this.MainMenuStrip = this.mainMenu1;
        this.Text = "RTF Document Browser";
    }

    // Bring up a dialog to open a file.
    private void openMenuItem_Click(object sender, EventArgs e)
    {
        // If a file is not opened, then set the initial directory to the
        // FolderBrowserDialog.SelectedPath value.
        if (!fileOpened) {
            openFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath;
            openFileDialog1.FileName = null;
        }

        // Display the openFile dialog.
        DialogResult result = openFileDialog1.ShowDialog();

        // OK button was pressed.
        if (result == DialogResult.OK)
        {
            openFileName = openFileDialog1.FileName;
            try
            {
                // Output the requested file in richTextBox1.
                Stream s = openFileDialog1.OpenFile();
                richTextBox1.LoadFile(s, RichTextBoxStreamType.RichText);
                s.Close();

                fileOpened = true;
            }
            catch (Exception exp)
            {
                MessageBox.Show("An error occurred while attempting to load the file. The error is:"
                                + System.Environment.NewLine + exp.ToString() + System.Environment.NewLine);
                fileOpened = false;
            }
            Invalidate();

            closeMenuItem.Enabled = fileOpened;
        }

        // Cancel button was pressed.
        else if (result == DialogResult.Cancel)
        {
            return;
        }
    }

    // Close the current file.
    private void closeMenuItem_Click(object sender, EventArgs e)
    {
        richTextBox1.Text = "";
        fileOpened = false;

        closeMenuItem.Enabled = false;
    }

    // Bring up a dialog to choose a folder path in which to open or save a file.
    private void folderMenuItem_Click(object sender, EventArgs e)
    {
        // Show the FolderBrowserDialog.
        DialogResult result = folderBrowserDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            folderName = folderBrowserDialog1.SelectedPath;
            if (!fileOpened)
            {
                // No file is opened, bring up openFileDialog in selected path.
                openFileDialog1.InitialDirectory = folderName;
                openFileDialog1.FileName = null;
                openMenuItem.PerformClick();
            }
        }
    }
}

Remarques

Cette classe permet d’inviter l’utilisateur à parcourir, créer et éventuellement sélectionner un dossier. Utilisez cette classe lorsque vous souhaitez uniquement autoriser l’utilisateur à sélectionner des dossiers, pas des fichiers. La navigation des dossiers s’effectue via un contrôle d’arborescence. Dans .NET Core 3.1 et versions ultérieures, cette classe utilise la fenêtre du navigateur du système de fichiers moderne. Seuls les dossiers du système de fichiers peuvent être sélectionnés ; les dossiers virtuels ne peuvent pas.

En règle générale, après avoir créé un , FolderBrowserDialogvous définissez sur l’emplacement RootFolder à partir duquel commencer la navigation. Si vous le souhaitez, vous pouvez définir le SelectedPath sur un chemin d’accès absolu d’un sous-dossier de RootFolder qui sera initialement sélectionné. Vous pouvez également définir éventuellement la Description propriété pour fournir des instructions supplémentaires à l’utilisateur. Enfin, appelez la ShowDialog méthode pour afficher la boîte de dialogue à l’utilisateur. Lorsque la boîte de dialogue est fermée et que la boîte de dialogue résulte de ShowDialog est DialogResult.OK, SelectedPath est une chaîne contenant le chemin d’accès au dossier sélectionné.

Vous pouvez utiliser la ShowNewFolderButton propriété pour contrôler si l’utilisateur est en mesure de créer des dossiers à l’aide du bouton Nouveau dossier .

FolderBrowserDialog est une boîte de dialogue modale ; par conséquent, lorsqu’il s’affiche, il bloque le reste de l’application jusqu’à ce que l’utilisateur ait choisi un dossier. Lorsqu’une boîte de dialogue s’affiche de manière modale, aucune entrée (clavier ou clic de souris) ne peut se produire, sauf pour les objets de la boîte de dialogue. Le programme doit masquer ou fermer la boîte de dialogue (généralement en réponse à une action de l’utilisateur) avant que l’entrée dans le programme appelant puisse se produire.

Constructeurs

FolderBrowserDialog()

Initialise une nouvelle instance de la classe FolderBrowserDialog.

Propriétés

AddToRecent

Obtient ou définit une valeur indiquant si la boîte de dialogue ajoute le dossier sélectionné à la liste récente.

AutoUpgradeEnabled

Obtient ou définit une valeur qui indique si la boîte de dialogue sera automatiquement mise à niveau pour activer les nouvelles fonctionnalités.

CanRaiseEvents

Obtient une valeur qui indique si le composant peut déclencher un événement.

(Hérité de Component)
ClientGuid

Obtient ou définit le GUID à associer à cet état de boîte de dialogue. Généralement, l’état du dernier dossier visité ainsi que la position et la taille de la boîte de dialogue sont conservés en fonction du nom du fichier exécutable. En spécifiant un GUID, une application peut avoir des états persistants différents pour différentes versions de la boîte de dialogue au sein de la même application (par exemple, une boîte de dialogue d’importation et une boîte de dialogue ouverte).

Cette fonctionnalité n’est pas disponible si une application n’utilise pas de styles visuels ou si AutoUpgradeEnabled a la valeur false.

Container

Obtient le IContainer qui contient la Component.

(Hérité de Component)
Description

Obtient ou définit le texte descriptif affiché au-dessus de la boîte de dialogue.

DesignMode

Obtient une valeur qui indique si Component est actuellement en mode design.

(Hérité de Component)
Events

Obtient la liste des gestionnaires d'événements attachés à ce Component.

(Hérité de Component)
InitialDirectory

Obtient ou définit le répertoire initial affiché par la boîte de dialogue du navigateur de dossiers.

Multiselect

Obtient ou définit une valeur indiquant si la boîte de dialogue permet de sélectionner plusieurs dossiers.

OkRequiresInteraction

Obtient ou définit une valeur indiquant si le bouton OK de la boîte de dialogue est désactivé jusqu’à ce que l’utilisateur navigue dans l’affichage ou modifie le nom de fichier (le cas échéant).

RootFolder

Obtient ou définit le dossier racine à partir duquel la recherche démarre.

SelectedPath

Obtient ou définit le chemin d'accès sélectionné par l'utilisateur.

SelectedPaths

Obtient les chemins d’accès de tous les dossiers sélectionnés dans la boîte de dialogue.

ShowHiddenFiles

Obtient ou définit une valeur indiquant si la boîte de dialogue affiche les fichiers système et masqués.

ShowNewFolderButton

Obtient ou définit une valeur indiquant si le bouton Nouveau dossier figure dans la boîte de dialogue de recherche des dossiers.

ShowPinnedPlaces

Obtient ou définit une valeur indiquant si les éléments affichés par défaut dans le volet de navigation de l’affichage sont affichés.

Site

Obtient ou définit le ISite de Component.

(Hérité de Component)
Tag

Obtient ou définit un objet qui contient des données relatives au contrôle.

(Hérité de CommonDialog)
UseDescriptionForTitle

Obtient ou définit une valeur qui indique s’il faut utiliser la valeur de la propriété Description comme titre de boîte de dialogue pour les boîtes de dialogue de style Vista. Cette propriété n’a aucun effet sur les anciennes boîtes de dialogue de style.

Méthodes

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par Component.

(Hérité de Component)
Dispose(Boolean)

Libère les ressources non managées utilisées par Component et libère éventuellement les ressources managées.

(Hérité de Component)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetService(Type)

Retourne un objet qui représente un service fourni par Component ou par son Container.

(Hérité de Component)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Définit la procédure de raccordement d'une boîte de dialogue commune devant être substituée pour qu'une fonctionnalité spécifique soit ajoutée à une boîte de dialogue commune.

(Hérité de CommonDialog)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
OnHelpRequest(EventArgs)

Déclenche l’événement HelpRequest.

(Hérité de CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Définit la procédure de fenêtre propriétaire devant être substituée pour qu'une fonctionnalité spécifique soit ajoutée à une boîte de dialogue commune.

(Hérité de CommonDialog)
Reset()

Rétablit les valeurs par défaut des propriétés.

RunDialog(IntPtr)

En cas de substitution dans une classe dérivée, spécifie une boîte de dialogue commune.

(Hérité de CommonDialog)
ShowDialog()

Exécute une boîte de dialogue commune avec un propriétaire par défaut.

(Hérité de CommonDialog)
ShowDialog(IWin32Window)

Exécute une boîte de dialogue commune avec le propriétaire spécifié.

(Hérité de CommonDialog)
ToString()

Retourne un String contenant le nom du Component, s’il en existe un. Cette méthode ne doit pas être remplacée.

(Hérité de Component)

Événements

Disposed

Se produit lorsque le composant est supprimé par un appel à la méthode Dispose().

(Hérité de Component)
HelpRequest

Se produit quand l’utilisateur clique sur le bouton Aide de la boîte de dialogue.

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi