Leggere in inglese

Condividi tramite


FolderBrowserDialog Classe

Definizione

Richiede all'utente la selezione di una cartella. La classe non può essere ereditata.

C#
public sealed class FolderBrowserDialog : System.Windows.Forms.CommonDialog
Ereditarietà

Esempio

Nell'esempio di codice seguente viene creata un'applicazione che consente all'utente di aprire file di testo avanzato (.rtf) all'interno del RichTextBox controllo.

C#
// 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();
            }
        }
    }
}

Commenti

Questa classe consente di richiedere all'utente di esplorare, creare e infine selezionare una cartella. Usare questa classe quando si vuole solo consentire all'utente di selezionare cartelle, non file. L'esplorazione delle cartelle viene eseguita tramite un controllo albero. In .NET Core 3.1 e versioni successive questa classe usa la finestra del browser del file system modernizzato. È possibile selezionare solo cartelle dal file system; le cartelle virtuali non possono.

In genere, dopo aver creato un nuovo FolderBrowserDialogoggetto , è possibile impostare l'oggetto RootFolder sulla posizione da cui iniziare a esplorare. Facoltativamente, è possibile impostare su SelectedPath un percorso assoluto di una sottocartella di RootFolder che verrà inizialmente selezionata. È anche possibile impostare facoltativamente la Description proprietà per fornire istruzioni aggiuntive all'utente. Infine, chiamare il ShowDialog metodo per visualizzare la finestra di dialogo all'utente. Quando la finestra di dialogo viene chiusa e la finestra di dialogo risultante da ShowDialog è DialogResult.OK, sarà SelectedPath una stringa contenente il percorso della cartella selezionata.

È possibile usare la ShowNewFolderButton proprietà per controllare se l'utente è in grado di creare nuove cartelle con il pulsante Nuova cartella .

FolderBrowserDialog è una finestra di dialogo modale; pertanto, quando visualizzato, blocca il resto dell'applicazione fino a quando l'utente non ha scelto una cartella. Quando viene visualizzata una finestra di dialogo modally, non può verificarsi alcun input (tastiera o clic del mouse) ad eccezione di oggetti nella finestra di dialogo. Il programma deve nascondere o chiudere la finestra di dialogo (in genere in risposta a un'azione dell'utente) prima che l'input al programma chiamante possa verificarsi.

Costruttori

FolderBrowserDialog()

Inizializza una nuova istanza della classe FolderBrowserDialog.

Proprietà

AddToRecent

Ottiene o imposta un valore che indica se la finestra di dialogo aggiunge la cartella selezionata all'elenco recente.

AutoUpgradeEnabled

Ottiene o imposta un valore che indica se la finestra di dialogo verrà aggiornata automaticamente per abilitare le nuove funzionalità.

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
ClientGuid

Ottiene o imposta il GUID da associare allo stato della finestra di dialogo. In genere, gli stati come l'ultima cartella visitata e la posizione e le dimensioni della finestra di dialogo vengono mantenuti in base al nome del file eseguibile. Specificando un GUID, un'applicazione può avere stati permanenti diversi per versioni diverse della finestra di dialogo all'interno della stessa applicazione, ad esempio una finestra di dialogo di importazione e una finestra di dialogo aperta.

Questa funzionalità non è disponibile se un'applicazione non usa stili visivi o se AutoUpgradeEnabled è impostato su false.

Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
Description

Ottiene o imposta il testo descrittivo visualizzato sopra la finestra di dialogo.

DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
InitialDirectory

Ottiene o imposta la directory iniziale visualizzata dalla finestra di dialogo del browser delle cartelle.

Multiselect

Ottiene o imposta un valore che indica se la finestra di dialogo consente di selezionare più cartelle.

OkRequiresInteraction

Ottiene o imposta un valore che indica se il pulsante OK della finestra di dialogo è disabilitato fino a quando l'utente sposta la visualizzazione o modifica il nome file (se applicabile).

RootFolder

Ottiene o imposta la cartella radice da cui iniziare l'esplorazione.

SelectedPath

Ottiene o imposta il percorso selezionato dall'utente.

SelectedPaths

Ottiene i percorsi di tutte le cartelle selezionate nella finestra di dialogo.

ShowHiddenFiles

Ottiene o imposta un valore che indica se la finestra di dialogo visualizza file nascosti e di sistema.

ShowNewFolderButton

Ottiene o imposta un valore che indica se nella finestra di dialogo per l'esplorazione delle cartelle viene visualizzato il pulsante Nuova cartella.

ShowPinnedPlaces

Ottiene o imposta un valore che indica se gli elementi visualizzati per impostazione predefinita nel riquadro di spostamento della vista vengono visualizzati.

Site

Ottiene o imposta l'oggetto ISite di Component.

(Ereditato da Component)
Tag

Ottiene o imposta un oggetto che contiene i dati relativi al controllo.

(Ereditato da CommonDialog)
UseDescriptionForTitle

Ottiene o imposta un valore che indica se usare il valore della proprietà Description come titolo della finestra di dialogo per le finestre di dialogo in stile Vista. Questa proprietà non ha effetto sulle finestre di dialogo in stile precedente.

Metodi

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Definisce la routine di hook della finestra di dialogo comune di cui viene eseguito l'override per aggiungere funzionalità specifiche a una finestra di dialogo comune.

(Ereditato da CommonDialog)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
OnHelpRequest(EventArgs)

Genera l'evento HelpRequest.

(Ereditato da CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Definisce la routine della finestra proprietaria di cui viene eseguito l'override per aggiungere funzionalità specifiche a una finestra di dialogo comune.

(Ereditato da CommonDialog)
Reset()

Reimposta le proprietà sui valori predefiniti.

RunDialog(IntPtr)

Quando ne viene eseguito l'override in una classe derivata, specifica una finestra di dialogo comune.

(Ereditato da CommonDialog)
ShowDialog()

Esegue una finestra di dialogo comune con un proprietario predefinito.

(Ereditato da CommonDialog)
ShowDialog(IWin32Window)

Esegue una finestra di dialogo comune con il proprietario specificato.

(Ereditato da CommonDialog)
ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().

(Ereditato da Component)
HelpRequest

Viene generato quando l'utente fa clic sul pulsante ? nella finestra di dialogo.

Si applica a

Prodotto Versioni
.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

Vedi anche