FolderBrowserDialog クラス

定義

ユーザーにフォルダーを選択するよう要求します。 このクラスは継承できません。

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
継承

次のコード例では、ユーザーがコントロール内でリッチ テキスト (.rtf) ファイルを開くことができるアプリケーションを RichTextBox 作成します。

// 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 MainMenu mainMenu1;
    private MenuItem fileMenuItem, openMenuItem;
    private MenuItem 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 System.Windows.Forms.MainMenu();
        this.fileMenuItem = new System.Windows.Forms.MenuItem();
        this.openMenuItem = new System.Windows.Forms.MenuItem();
        this.folderMenuItem = new System.Windows.Forms.MenuItem();
        this.closeMenuItem = new System.Windows.Forms.MenuItem();

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

        this.mainMenu1.MenuItems.Add(this.fileMenuItem);
        this.fileMenuItem.MenuItems.AddRange(
                            new System.Windows.Forms.MenuItem[] {this.openMenuItem,
                                                                 this.closeMenuItem,
                                                                 this.folderMenuItem});
        this.fileMenuItem.Text = "File";

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

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

        this.closeMenuItem.Text = "Close";
        this.closeMenuItem.Click += new System.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, 8);
        this.richTextBox1.Size = new System.Drawing.Size(280, 344);
        this.richTextBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | 
                                   AnchorStyles.Bottom | AnchorStyles.Right;

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

    // Bring up a dialog to open a file.
    private 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 = 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, System.EventArgs e)
    {
        richTextBox1.Text = "";
        fileOpened = false;

        closeMenuItem.Enabled = false;
    }

    // Bring up a dialog to chose a folder path in which to open or save a file.
    private void folderMenuItem_Click(object sender, System.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

注釈

このクラスは、ユーザーにフォルダーの参照、作成、最終的な選択を求める方法を提供します。 ユーザーがファイルではなくフォルダーを選択できるようにする場合にのみ、このクラスを使用します。 フォルダーの参照は、ツリー コントロールを使用して行われます。 ファイル システムのフォルダーのみを選択できます。仮想フォルダーを使用できません。

通常、新しい FolderBrowserDialog作成後に、参照を RootFolder 開始する場所を設定します。 必要に応じて、最初に選択されるサブフォルダーのRootFolder絶対パスを設定SelectedPathできます。 必要に応じて、プロパティを Description 設定して、ユーザーに追加の指示を提供することもできます。 最後に、メソッドを ShowDialog 呼び出して、ダイアログ ボックスをユーザーに表示します。 ダイアログ ボックスが閉じられ、ダイアログ ボックスの結果 ShowDialogDialogResult.OK取得されると、 SelectedPath 選択したフォルダーへのパスを含む文字列になります。

このプロパティを ShowNewFolderButton 使用して、[ しいフォルダー] ボタンを使用してユーザーが新しいフォルダーを作成できるかどうかを制御できます。

FolderBrowserDialog はモーダル ダイアログ ボックスです。したがって、表示されると、ユーザーがフォルダーを選択するまで、アプリケーションの残りの部分がブロックされます。 ダイアログ ボックスをモーダルで表示する場合、ダイアログ ボックス上のオブジェクトを除き、入力 (キーボードまたはマウス クリック) は発生しません。 プログラムは、呼び出し元のプログラムへの入力を行う前に、ダイアログ ボックスを非表示または閉じる必要があります (通常、ユーザーの操作に応じて)。

コンストラクター

FolderBrowserDialog()

FolderBrowserDialog クラスの新しいインスタンスを初期化します。

プロパティ

AddToRecent
AutoUpgradeEnabled

新しい機能を有効にするためにダイアログを自動的にアップグレードするかどうかを示す値を取得または設定します。

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
ClientGuid

このダイアログの状態に関連付ける GUID を取得または設定します。 通常、最後にアクセスしたフォルダーやダイアログの位置やサイズなどの状態は、実行可能ファイルの名前に基づいて保持されます。 GUID を指定することにより、アプリケーションでは、異なるバージョンのダイアログ (たとえばインポート ダイアログや [開く] ダイアログなど) に対して、同じアプリケーション内で異なる状態を保持することができます。

アプリケーションで視覚スタイルを使用していない場合や、AutoUpgradeEnabledfalse に設定されている場合は、この機能は使用できません。

Container

IContainer を含む Component を取得します。

(継承元 Component)
Description

ダイアログ ボックスのツリー ビュー コントロールの上部に表示する説明テキストを取得または設定します。

DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。

(継承元 Component)
InitialDirectory

フォルダー ブラウザー ダイアログで表示される初期ディレクトリを取得または設定します。

OkRequiresInteraction
RootFolder

参照の開始位置とするルート フォルダーを取得または設定します。

SelectedPath

ユーザーが選択したパスを取得または設定します。

ShowHiddenFiles
ShowNewFolderButton

フォルダー参照ダイアログ ボックスに [新しいフォルダー] ボタンを表示するかどうかを示す値を取得または設定します。

ShowPinnedPlaces
Site

ComponentISite を取得または設定します。

(継承元 Component)
Tag

コントロールに関するデータを格納するオブジェクトを取得または設定します。

(継承元 CommonDialog)
UseDescriptionForTitle

Vista 形式のダイアログのダイアログ タイトルとして Description プロパティの値を使用するかどうかを示す値を取得または設定します。 このプロパティは古い形式のダイアログには影響しません。

メソッド

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

Component によって使用されているすべてのリソースを解放します。

(継承元 Component)
Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 Component)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

コモン ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、コモン ダイアログ ボックスのフック プロシージャを定義します。

(継承元 CommonDialog)
InitializeLifetimeService()
互換性のために残されています。

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
OnHelpRequest(EventArgs)

HelpRequest イベントを発生させます。

(継承元 CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

コモン ダイアログ ボックスに特定の機能を追加するためにオーバーライドされる、オーナー ウィンドウ プロシージャを定義します。

(継承元 CommonDialog)
Reset()

プロパティを既定値にリセットします。

RunDialog(IntPtr)

派生クラスでオーバーライドされるときに、コモン ダイアログ ボックスを指定します。

(継承元 CommonDialog)
ShowDialog()

既定のオーナーを使用してコモン ダイアログ ボックスを実行します。

(継承元 CommonDialog)
ShowDialog(IWin32Window)

指定したオーナーを使用してコモン ダイアログ ボックスを実行します。

(継承元 CommonDialog)
ToString()

Component の名前 (存在する場合) を格納する String を返します。 このメソッドはオーバーライドできません。

(継承元 Component)

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)
HelpRequest

ユーザーがダイアログ ボックスの [ヘルプ] をクリックすると発生します。

適用対象

こちらもご覧ください