FolderBrowserDialog Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Solicita que o usuário selecione uma pasta. Essa classe não pode ser herdada.
public ref class FolderBrowserDialog sealed : System::Windows::Forms::CommonDialog
public sealed class FolderBrowserDialog : System.Windows.Forms.CommonDialog
type FolderBrowserDialog = class
inherit CommonDialog
Public NotInheritable Class FolderBrowserDialog
Inherits CommonDialog
- Herança
Exemplos
O exemplo de código a seguir cria um aplicativo que permite que o usuário abra arquivos de rich text (.rtf) dentro do RichTextBox controle .
// 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 is used to open the file.
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::IO;
public ref class FolderBrowserDialogExampleForm: public System::Windows::Forms::Form
{
private:
FolderBrowserDialog^ folderBrowserDialog1;
OpenFileDialog^ openFileDialog1;
RichTextBox^ richTextBox1;
MainMenu^ mainMenu1;
MenuItem^ fileMenuItem;
MenuItem^ openMenuItem;
MenuItem^ folderMenuItem;
MenuItem^ closeMenuItem;
String^ openFileName;
String^ folderName;
bool fileOpened;
public:
// Constructor.
FolderBrowserDialogExampleForm()
{
fileOpened = false;
this->mainMenu1 = gcnew System::Windows::Forms::MainMenu;
this->fileMenuItem = gcnew System::Windows::Forms::MenuItem;
this->openMenuItem = gcnew System::Windows::Forms::MenuItem;
this->folderMenuItem = gcnew System::Windows::Forms::MenuItem;
this->closeMenuItem = gcnew System::Windows::Forms::MenuItem;
this->openFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog;
this->folderBrowserDialog1 = gcnew System::Windows::Forms::FolderBrowserDialog;
this->richTextBox1 = gcnew System::Windows::Forms::RichTextBox;
this->mainMenu1->MenuItems->Add( this->fileMenuItem );
array<System::Windows::Forms::MenuItem^>^temp0 = {this->openMenuItem,this->closeMenuItem,this->folderMenuItem};
this->fileMenuItem->MenuItems->AddRange( temp0 );
this->fileMenuItem->Text = "File";
this->openMenuItem->Text = "Open...";
this->openMenuItem->Click += gcnew System::EventHandler( this, &FolderBrowserDialogExampleForm::openMenuItem_Click );
this->folderMenuItem->Text = "Select Directory...";
this->folderMenuItem->Click += gcnew System::EventHandler( this, &FolderBrowserDialogExampleForm::folderMenuItem_Click );
this->closeMenuItem->Text = "Close";
this->closeMenuItem->Click += gcnew System::EventHandler( this, &FolderBrowserDialogExampleForm::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 = System::Drawing::Point( 8, 8 );
this->richTextBox1->Size = System::Drawing::Size( 280, 344 );
this->richTextBox1->Anchor = static_cast<AnchorStyles>(AnchorStyles::Top | AnchorStyles::Left | AnchorStyles::Bottom | AnchorStyles::Right);
this->ClientSize = System::Drawing::Size( 296, 360 );
this->Controls->Add( this->richTextBox1 );
this->Menu = this->mainMenu1;
this->Text = "RTF Document Browser";
}
private:
// Bring up a dialog to open a file.
void openMenuItem_Click( Object^ /*sender*/, System::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 = nullptr;
}
// Display the openFile Dialog.
System::Windows::Forms::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( String::Concat( "An error occurred while attempting to load the file. The error is: ", System::Environment::NewLine, exp, System::Environment::NewLine ) );
fileOpened = false;
}
Invalidate();
closeMenuItem->Enabled = fileOpened;
}
// Cancel button was pressed.
else
// Cancel button was pressed.
if ( result == ::DialogResult::Cancel )
{
return;
}
}
// Close the current file.
void closeMenuItem_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
richTextBox1->Text = "";
fileOpened = false;
closeMenuItem->Enabled = false;
}
// Bring up a dialog to chose a folder path in which to open/save a file.
void folderMenuItem_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Show the FolderBrowserDialog.
System::Windows::Forms::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 = nullptr;
openMenuItem->PerformClick();
}
}
}
};
// The main entry point for the application.
int main()
{
Application::Run( gcnew FolderBrowserDialogExampleForm );
}
// 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();
}
}
}
}
' 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.
Imports System.Drawing
Imports System.Windows.Forms
Imports System.IO
Public Class FolderBrowserDialogExampleForm
Inherits Form
Private folderBrowserDialog1 As FolderBrowserDialog
Private openFileDialog1 As OpenFileDialog
Private richTextBox1 As RichTextBox
Private mainMenu1 As MainMenu
Private fileMenuItem As MenuItem
Private WithEvents folderMenuItem As MenuItem, _
closeMenuItem As MenuItem, _
openMenuItem As MenuItem
Private openFileName As String, folderName As String
Private fileOpened As Boolean = False
Public Sub New()
Me.mainMenu1 = New System.Windows.Forms.MainMenu()
Me.fileMenuItem = New System.Windows.Forms.MenuItem()
Me.openMenuItem = New System.Windows.Forms.MenuItem()
Me.folderMenuItem = New System.Windows.Forms.MenuItem()
Me.closeMenuItem = New System.Windows.Forms.MenuItem()
Me.openFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.folderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog()
Me.richTextBox1 = New System.Windows.Forms.RichTextBox()
Me.mainMenu1.MenuItems.Add(Me.fileMenuItem)
Me.fileMenuItem.MenuItems.AddRange( _
New System.Windows.Forms.MenuItem() {Me.openMenuItem, _
Me.closeMenuItem, _
Me.folderMenuItem})
Me.fileMenuItem.Text = "File"
Me.openMenuItem.Text = "Open..."
Me.folderMenuItem.Text = "Select Directory..."
Me.closeMenuItem.Text = "Close"
Me.closeMenuItem.Enabled = False
Me.openFileDialog1.DefaultExt = "rtf"
Me.openFileDialog1.Filter = "rtf files (*.rtf)|*.rtf"
' Set the Help text description for the FolderBrowserDialog.
Me.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.
Me.folderBrowserDialog1.ShowNewFolderButton = False
' Default to the My Documents folder.
Me.folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal
Me.richTextBox1.AcceptsTab = True
Me.richTextBox1.Location = New System.Drawing.Point(8, 8)
Me.richTextBox1.Size = New System.Drawing.Size(280, 344)
Me.richTextBox1.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or _
AnchorStyles.Bottom Or AnchorStyles.Right
Me.ClientSize = New System.Drawing.Size(296, 360)
Me.Controls.Add(Me.richTextBox1)
Me.Menu = Me.mainMenu1
Me.Text = "RTF Document Browser"
End Sub
<STAThread()> _
Shared Sub Main()
Application.Run(New FolderBrowserDialogExampleForm())
End Sub
' Bring up a dialog to open a file.
Private Sub openMenuItem_Click(sender As object, e As System.EventArgs) _
Handles openMenuItem.Click
' If a file is not opened, then set the initial directory to the
' FolderBrowserDialog.SelectedPath value.
If (not fileOpened) Then
openFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath
openFileDialog1.FileName = nothing
End If
' Display the openFile dialog.
Dim result As DialogResult = openFileDialog1.ShowDialog()
' OK button was pressed.
If (result = DialogResult.OK) Then
openFileName = openFileDialog1.FileName
Try
' Output the requested file in richTextBox1.
Dim s As Stream = openFileDialog1.OpenFile()
richTextBox1.LoadFile(s, RichTextBoxStreamType.RichText)
s.Close()
fileOpened = True
Catch exp As Exception
MessageBox.Show("An error occurred while attempting to load the file. The error is:" _
+ System.Environment.NewLine + exp.ToString() + System.Environment.NewLine)
fileOpened = False
End Try
Invalidate()
closeMenuItem.Enabled = fileOpened
' Cancel button was pressed.
ElseIf (result = DialogResult.Cancel) Then
return
End If
End Sub
' Close the current file.
Private Sub closeMenuItem_Click(sender As object, e As System.EventArgs) _
Handles closeMenuItem.Click
richTextBox1.Text = ""
fileOpened = False
closeMenuItem.Enabled = False
End Sub
' Bring up a dialog to chose a folder path in which to open or save a file.
Private Sub folderMenuItem_Click(sender As object, e As System.EventArgs) _
Handles folderMenuItem.Click
' Show the FolderBrowserDialog.
Dim result As DialogResult = folderBrowserDialog1.ShowDialog()
If ( result = DialogResult.OK ) Then
folderName = folderBrowserDialog1.SelectedPath
If (not fileOpened) Then
' No file is opened, bring up openFileDialog in selected path.
openFileDialog1.InitialDirectory = folderName
openFileDialog1.FileName = nothing
openMenuItem.PerformClick()
End If
End If
End Sub
End Class
Comentários
Essa classe fornece uma maneira de solicitar que o usuário navegue, crie e, eventualmente, selecione uma pasta. Use essa classe quando quiser permitir que o usuário selecione pastas, não arquivos. A navegação das pastas é feita por meio de um controle de árvore. No .NET Core 3.1 e versões posteriores, essa classe usa a janela modernizada do navegador do sistema de arquivos. Somente pastas do sistema de arquivos podem ser selecionadas; as pastas virtuais não podem.
Normalmente, depois de criar um novo FolderBrowserDialog, você define o RootFolder para o local do qual iniciar a navegação. Opcionalmente, você pode definir o SelectedPath como um caminho absoluto de uma subpasta de RootFolder que será selecionada inicialmente. Opcionalmente, você também pode definir a Description propriedade para fornecer instruções adicionais ao usuário. Por fim, chame o ShowDialog método para exibir a caixa de diálogo para o usuário. Quando a caixa de diálogo for fechada e o resultado da caixa de diálogo for ShowDialogDialogResult.OK, será SelectedPath uma cadeia de caracteres que contém o caminho para a pasta selecionada.
Você pode usar a ShowNewFolderButton propriedade para controlar se o usuário é capaz de criar novas pastas com o botão Nova Pasta .
FolderBrowserDialog é uma caixa de diálogo modal; portanto, quando mostrado, ele bloqueia o restante do aplicativo até que o usuário tenha escolhido uma pasta. Quando uma caixa de diálogo é exibida modally, nenhuma entrada (clique no teclado ou mouse) pode ocorrer, exceto para objetos na caixa de diálogo. O programa deve ocultar ou fechar a caixa de diálogo (geralmente em resposta a alguma ação do usuário) antes que a entrada para o programa de chamada possa ocorrer.
Construtores
FolderBrowserDialog() |
Inicializa uma nova instância da classe FolderBrowserDialog. |
Propriedades
AddToRecent |
Obtém ou define um valor que indica se a caixa de diálogo adiciona a pasta que está sendo selecionada à lista recente. |
AutoUpgradeEnabled |
Obtém ou define um valor que indica se o diálogo será atualizado automaticamente para habilitar novos recursos. |
CanRaiseEvents |
Obtém um valor que indica se o componente pode acionar um evento. (Herdado de Component) |
ClientGuid |
Obtém ou define o GUID a ser associado ao estado da caixa de diálogo. Normalmente, estados como a última pasta acessada e a posição e o tamanho da caixa de diálogo persistem com base no nome do arquivo executável. Ao especificar um GUID, um aplicativo pode ter diferentes estados persistentes para diferentes versões da caixa de diálogo dentro do mesmo aplicativo (por exemplo, uma caixa de diálogo de importação e uma caixa de diálogo aberta). Essa funcionalidade não estará disponível se um aplicativo não estiver usando estilos visuais ou se AutoUpgradeEnabled estiver definido como |
Container |
Obtém o IContainer que contém o Component. (Herdado de Component) |
Description |
Obtém ou define o texto descritivo exibido acima da caixa de diálogo. |
DesignMode |
Obtém um valor que indica se o Component está no modo de design no momento. (Herdado de Component) |
Events |
Obtém a lista de manipuladores de eventos que estão anexados a este Component. (Herdado de Component) |
InitialDirectory |
Obtém ou define o diretório inicial exibido pela caixa de diálogo do navegador de pastas. |
Multiselect |
Obtém ou define um valor que indica se a caixa de diálogo permite que várias pastas sejam selecionadas. |
OkRequiresInteraction |
Obtém ou define um valor que indica se o botão OK da caixa de diálogo está desabilitado até que o usuário navegue pelo modo de exibição ou edite o nome do arquivo (se aplicável). |
RootFolder |
Obtém ou define a pasta raiz na qual começa a navegação. |
SelectedPath |
Obtém ou define o caminho selecionado pelo usuário. |
SelectedPaths |
Obtém os caminhos de todas as pastas selecionadas na caixa de diálogo. |
ShowHiddenFiles |
Obtém ou define um valor que indica se a caixa de diálogo exibe arquivos ocultos e do sistema. |
ShowNewFolderButton |
Obtém ou define um valor que indica se o botão Nova Pasta aparece na caixa de diálogo do navegador de pastas. |
ShowPinnedPlaces |
Obtém ou define um valor que indica se os itens mostrados por padrão no painel de navegação do modo de exibição são mostrados. |
Site |
Obtém ou define o ISite do Component. (Herdado de Component) |
Tag |
Obtém ou define um objeto que contém dados sobre o controle. (Herdado de CommonDialog) |
UseDescriptionForTitle |
Obtém ou define um valor que indica se o valor da propriedade Description deve ser usado como título da caixa de diálogo para caixas de diálogo no estilo Vista. Essa propriedade não afeta as caixas de diálogo de estilo antigo. |
Métodos
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
Dispose() |
Libera todos os recursos usados pelo Component. (Herdado de Component) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados. (Herdado de Component) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância. (Herdado de MarshalByRefObject) |
GetService(Type) |
Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container. (Herdado de Component) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
HookProc(IntPtr, Int32, IntPtr, IntPtr) |
Define o procedimento de gancho de caixa de diálogo comum que é substituído para adicionar uma funcionalidade específica a uma caixa de diálogo comum. (Herdado de CommonDialog) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
OnHelpRequest(EventArgs) |
Aciona o evento HelpRequest. (Herdado de CommonDialog) |
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr) |
Define o procedimento da janela de proprietário que é substituído para adicionar a funcionalidade específica a uma caixa de diálogo comum. (Herdado de CommonDialog) |
Reset() |
Redefine as propriedades para seus valores padrão. |
RunDialog(IntPtr) |
Quando substituído em uma classe derivada, especifica uma caixa de diálogo comum. (Herdado de CommonDialog) |
ShowDialog() |
Executa uma caixa de diálogo comum com um proprietário padrão. (Herdado de CommonDialog) |
ShowDialog(IWin32Window) |
Executa uma caixa de diálogo comum com o proprietário especificado. (Herdado de CommonDialog) |
ToString() |
Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído. (Herdado de Component) |
Eventos
Disposed |
Ocorre quando o componente é disposto por uma chamada ao método Dispose(). (Herdado de Component) |
HelpRequest |
Ocorre quando o usuário clica no botão Ajuda da caixa de diálogo. |