Windows フォームアプリの改修をしているとファイル・フォルダー関連のコモンダイアログである「ファイルを開く」「名前を付けて保存」「フォルダーの参照」を使うことが時々あります。
このファイル・フォルダー関連のコモンダイアログ、時々しか使わないのでいざ使おうとする際に、プロパティの設定値などが「あれ?これってどう設定するんだっけ…?」とか「このプロパティは初期値のままで変更しなくてもよかったっけ…?」とわからなくなることがあるので、書きとめておくことにします。
目次
ファイル選択ダイアログとフォルダー選択ダイアログ
「ファイルを開くダイアログ (OpenFileDialog) 」と「名前を付けて保存ダイアログ (SaveFileDialog) 」は、ファイルの参照をするための機能を持ったダイアログで、「フォルダーの参照ダイアログ (FolderBrowserDialog) 」は、フォルダー (ディレクトリー) を参照するための機能を持ったダイアログなので、構造が異なっています。
ファイル選択ダイアログ
「ファイルを開くダイアログ」と「名前を付けて保存ダイアログ」は共に System.Windows.Forms.FileDialog の派生クラスになっているので、メンバー (プロパティやメソッドなど) がほとんど同じになっています。
「ファイルを開くダイアログ」にはファイルを開く操作に必要なが追加されており、「名前を付けて保存ダイアログ」にはファイルを保存する操作に必要なプロパティ等が追加されています。
ファイルを開くダイアログと名前を付けて保存ダイアログのプロパティ
ファイルを開くダイアログ OpenFileDialog |
名前を付けて保存ダイアログ SaveFileDialog |
---|---|
AddExtension | AddExtension |
AutoUpgradeEnabled | AutoUpgradeEnabled |
CanRaiseEvents | CanRaiseEvents |
CheckFileExists | CheckFileExists |
CheckPathExists | CheckPathExists |
Container | Container |
CreatePrompt | |
CustomPlaces | CustomPlaces |
DefaultExt | DefaultExt |
DereferenceLinks | DereferenceLinks |
DesignMode | DesignMode |
Events | Events |
FileName | FileName |
FileNames | FileNames |
Filter | Filter |
FilterIndex | FilterIndex |
InitialDirectory | InitialDirectory |
Instance | Instance |
Multiselect | |
Options | Options |
OverwritePrompt | |
ReadOnlyChecked | |
RestoreDirectory | RestoreDirectory |
SafeFileName | |
SafeFileNames | |
ShowHelp | ShowHelp |
ShowReadOnly | |
Site | Site |
SupportMultiDottedExtensions | SupportMultiDottedExtensions |
Tag | Tag |
Title | Title |
ValidateNames | ValidateNames |
ファイルを開くダイアログにのみ実装されているプロパティ
- Multiselect
- SafeFileName
- SafeFileNames
- ShowReadOnly
名前を付けて保存ダイアログにのみ実装されているプロパティ
- CreatePrompt
- OverwritePrompt
ファイルを開くダイアログボックス
OpenFileDialog
ユーザーに開くファイルのパスを選択してもらうには「ファイルを開くダイアログボックス (OpenFileDialog)」を使用します。
主なプロパティ
ファイルを開くダイアログのプロパティのうち、設定を意識する必要がありそうな主なプロパティは次の 15 種類。
プロパティ名 | 型 | 内容 |
---|---|---|
AddExtension | bool | 拡張子が入力されなかった場合に、自動的に拡張子を付けるかどうかを設定する。付ける場合は「true」を、付けない場合は「false」を指定する。 既定値は「true」。 |
CheckFileExists | bool | 存在しないファイルが指定された場合に、警告メッセージを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「true」。 |
CheckPathExists | bool | 存在しないパスが指定された場合に、警告メッセージを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「true」。 |
FileName | string | ユーザーに選択されたファイルパスを取得する。ダイアログボックスの起動時に初期値として設定することも可能。 |
FileNames | string[] | ユーザーに選択された複数のファイルパスを取得する。Multiselect プロパティが「true」の場合に使用する。Multiselect プロパティが「false」の場合には FileName で取得できるファイルパスが FileNames[0] に格納される。 |
Filter | string | ファイルの種類のドロップダウンリストボックスの選択肢リストを文字列で設定する。 |
FilterIndex | int | ファイルの種類のドロップダウンリストボックスの選択肢リストの初期選択インデックスを設定する。インデックスの設定値は「0」からではなく「1」から開始。ユーザーが選択したインデックスを取得することも可能。 既定値は「1」。 |
InitialDirectory | string | ダイアログボックスの起動時に選択、表示するディレクトリー (パス) を設定する。設定したディレクトリー (パス) が存在しなくても例外は発生せず、設定しなかった場合と同じ動作となる。 |
Multiselect | bool | 複数のファイルを選択できるかどうかを設定する。複数選択を許可する場合は「true」を、許可しない場合は「false」。 既定値は「false」。 |
ReadOnlyChecked | bool | 読み取り専用として開くチェックボックスの ON/OFF を設定または取得する。ShowReadOnly プロパティが「true」の場合のみ有効となる。 既定値は「false」。 |
SafeFileName | string | ユーザーに選択された拡張子を含むファイル名のみ (パスは含まない) を取得する。 |
SafeFileNames | string[] | ユーザーに選択された複数の拡張子を含むファイル名のみ (パスは含まない) を取得する。Multiselect プロパティが「true」に設定されている場合のみ有効となる。 |
ShowHelp | bool | ヘルプボタン [?] を表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「false」。 |
ShowReadOnly | bool | 読み取り専用として開くチェックボックスを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「false」。 |
Title | string | ダイアログボックスのタイトルバーに表示されるタイトル文字列を設定する。 |
ほぼ設定不要なプロパティ
ファイルを開くダイアログボックスで、設定が必要ない (既定値のままで OK) と思われるプロパティは次の 4 種類。
- AddExtension
- CheckFileExists
- CheckPathExists
- ShowHelp
拡張子の自動付加は必要なので既定値で OK。
ファイル、パス (フォルダー) のチェックは必要なので既定値で OK。
ファイルの種類 (Filter) の設定について
ダイアログで開くことのできるファイルの種類は Filter プロパティにフィルター文字列を設定することで指定します。
フィルター文字列は「ファイルの説明」と「ファイルのパターン (拡張子)」を縦棒 (|) で区切って表します。」
フィルター文字列の設定例
- テキストファイルの場合
“テキストファイル (*.txt)|*.txt”
- XML ファイルの場合
“XML ファイル (*.xml)|*.xml”
- すべてのファイルの場合
“すべてのファイル (*.*)|*.*”
1つのファイルで複数の拡張子を設定したい場合は、ファイルのパターン (拡張子) を「;」セミコロンで区切れば OK です。
- HTML ファイルの場合
“HTML ファイル (*.html, *.htm)|*.html;*.htm”
- イメージファイルの場合
“イメージファイル (*.png, *.jpg, *.gif, *bmp)|*.png;*.jpg;*.gif;*bmp”
上記の設定では、ファイルの種類のドロップダウンリストボックスにはファイルの種類が1つしか表示されません。
ファイルの種類のドロップダウンリストボックスに複数のファイルを表示する場合は、ファイルの種類ごとのフィルター文字列 (テキストファイル (*.txt)|*.txt など) を「ファイルの説明」と「ファイルのパターン (拡張子)」を区切ったのと同じ縦棒 (|) で区切ります。
- テキストファイルとすべてのファイルの場合
“テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*”
- XML ファイルと HTML ファイルとすべてのファイルの場合
“XML ファイル (*.xml)|*.xml|HTML ファイル (*.html, *.htm)|*.html;*.htm|すべてのファイル (*.*)|*.*”
ファイルの種類を複数設定した際に、起動時に選択するファイルの種類を指定する場合は FilterIndex プロパティにインデックス値を指定します。
リストの先頭の項目 (アイテム) なら「1」を、2番目の項目なら「2」を設定します。(インデックスですが、「0」からではなく「1」からスタートなので注意!)
FilterIndex プロパティの既定値は「1」なので、起動時に選択させるファイルの種類を Filter プロパティに設定するフィルター文字列の最初に記述する場合は、FilterIndex プロパティの設定は不要になります。
ユーザーが選択したファイルの種類を保持しておき、次回に選択するファイルの種類を設定する場合などには便利なプロパティです。
複数のファイルを一括で開けるようにする
ユーザーが複数のファイルを一度に開くことができるようにするには Multiselect プロパティを「true」に設定します。
ユーザーが選択した複数のファイルは FileNames プロパティまたは SafeFileNames プロパティで取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ファイルを開くダイアログボックスのインスタンスを生成 OpenFileDialog openFileDialog = new OpenFileDialog(); // ファイルの複数選択を許可する openFileDialog.Multiselect = true; // ダイアログを表示する if (openFileDialog.ShowDialog() == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // ファイル名を取得 string[] fileNames = openFileDialog.FileNames; // ダイアログのインスタンスを破棄する openFileDialog.Dispose(); |
ファイルを読み取り専用で開けるようにする
ユーザーが読み書き可能 or 読み取り専用のいずれかでファイルを開くことができるようにするには ShowReadOnly プロパティを「true」に設定します。
ユーザーにできる限り読み取り専用で開いて欲しい場合や、基本的に読み取り専用でファイルを開いた方がユーザーにとって親切な場合など、「読み取り専用ファイルとして開く」チェックボックスをダイアログの起動時に ON にしたい場合は ReadOnlyChecked プロパティを「true」に設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// ファイルを開くダイアログボックスのインスタンスを生成 OpenFileDialog openFileDialog = new OpenFileDialog(); // [読み取り専用ファイルとして開く] チェックボックスを表示する openFileDialog.ShowReadOnly = true; // チェックボックスのチェックを ON に設定する openFileDialog.ReadOnlyChecked = true; // ダイアログを表示する if (openFileDialog.ShowDialog() == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // ファイル名を取得 string fileName = openFileDialog.FileName; // ダイアログのインスタンスを破棄する openFileDialog.Dispose(); |
起動時に選択、表示するディレクトリー (パス) を指定する
ファイルを開くディレクトリー (パス) が予め決まっている場合や、起動時にディレクトリー (パス) を限定した方がユーザーにとって使い勝手が良い場合には InitialDirectory プロパティにディレクトリーのパスを設定します。
(FileName プロパティにファイルパスを設定しても、ファイルパスのディレクトリーを初期表示はしてくれないので注意!必ず InitialDirectory プロパティで設定する。)
ファイルを開くダイアログのサンプル
テキストボックス (textBox1) と、ファイルを参照するボタン (button1) が配置されたフォームから、ファイルを開くダイアログボックスを表示して、選択されたファイル名 (ファイルパス) をテキストボックスに表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
/// <summary> /// ボタンがクリックされたときのイベント処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { // テキストボックスからファイル名 (ファイルパス) を取得 string fileName = this.textBox1.Text; // OpenFileDialog クラスのインスタンスを生成 using (OpenFileDialog openFileDialog = new OpenFileDialog()) { // ファイルの種類リストを設定 openFileDialog.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*"; // テキストボックスにファイル名 (ファイルパス) が設定されている場合は // ファイルのディレクトリー (フォルダー) を初期表示する if (fileName != string.Empty) { // FileInfo クラスのインスタンスを生成 FileInfo fileInfo = new FileInfo(fileName); // ディレクトリー名 (ディレクトリーパス) を取得 string directoryName = fileInfo.DirectoryName; // 存在する場合は InitialDirectory プロパティに設定 if (Directory.Exists(directoryName)) { openFileDialog.InitialDirectory = directoryName; } } // ダイアログを表示 DialogResult dialogResult = openFileDialog.ShowDialog(); if (dialogResult == DialogResult.Cancel) { // キャンセルされたので終了 return; } // 選択されたファイル名 (ファイルパス) をテキストボックスに設定 this.textBox1.Text = openFileDialog.FileName; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
名前を付けて保存ダイアログボックス
SaveFileDialog
ユーザーに保存するファイルのパスを選択してもらうには「名前を付けて保存ダイアログボックス (SaveFileDialog)」を使用します。
主なプロパティ
名前を付けて保存ダイアログのプロパティのうち、設定を意識する必要がありそうな主なプロパティは次の 11 種類。
プロパティ名 | 型 | 内容 |
---|---|---|
AddExtension | bool | 拡張子が入力されなかった場合に、自動的に拡張子を付けるかどうかを設定する。付ける場合は「true」を、付けない場合は「false」を指定する。 既定値は「true」。 |
CheckFileExists | bool | 存在しないファイルが指定された場合に、警告メッセージを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「false」。 |
CheckPathExists | bool | 存在しないパスが指定された場合に、警告メッセージを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「true」。 |
FileName | string | ユーザーに選択されたファイルパスを取得する。ダイアログボックスの起動時に初期値として設定することも可能。 |
Filter | string[] | ファイルの種類のドロップダウンリストボックスの選択肢リストを文字列で設定する。 |
FilterIndex | int | ファイルの種類のドロップダウンリストボックスの選択肢リストの初期選択インデックスを設定する。インデックスの設定値は「0」からではなく「1」から開始。ユーザーが選択したインデックスを取得することも可能。 既定値は「1」。 |
InitialDirectory | string | ダイアログボックスの起動時に選択、表示するディレクトリー (パス) を設定する。設定したディレクトリー (パス) が存在しなくても例外は発生せず、設定しなかった場合と同じ動作となる。 |
OverwritePrompt | bool | ユーザーが既に存在するパスを選択した場合に警告メッセージを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「true」。 |
RestoreDirectory | bool | ダイアログボックスを閉じる前に、ディレクトリ (フォルダー) を前に選択されていたディレクトリ (フォルダー) に戻すかどうかをを取得する。戻す場合は「true」を、戻さない場合は「false」を設定する。 既定値は「false」。 |
ShowHelp | bool | ヘルプボタン [?] を表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「false」。 |
Title | string | ダイアログボックスのタイトルバーに表示されるタイトル文字列を設定する。 |
ほぼ設定不要なプロパティ
名前を付けて保存ダイアログボックスで、設定が必要ない (既定値のままで OK) と思われるプロパティは次の 5 種類。
- AddExtension
- CheckFileExists
- CheckPathExists
- OverwritePrompt
- ShowHelp
拡張子の自動付加は必要なので既定値で OK。
ファイルのチェックは不要なので既定値で OK。
パス (フォルダー) のチェックは必要なので既定値で OK。
ファイルが存在する場合の上書き確認は必要なので既定値で OK。
プロパティの設定等について
ファイルを開くダイアログとほとんど同じです。
名前を付けて保存ダイアログは、ファイルを開く場合と違って、複数ファイルの選択可否の設定や、読み取り専用の設定がない分、ファイルを開くダイアログよりも設定が必要なプロパティは少なくなっています。
ファイルを保存する際に気にした方が良さげなプロパティは、ファイルの上書き確認の OverwritePrompt プロパティぐらいですが、既定値が「true」なので、特に気にかける必要はないでしょう。
名前を付けて保存ダイアログの OpenFile メソッド
名前を付けて保存ダイアログにはファイルを開くダイアログにはないメソッドが実装されています。
OpenFile メソッドを使用すると、ユーザーが選択したファイルの Stream オブジェクトへの参照を取得できるので、ファイルの保存処理に使えますが FileName プロパティからファイル名を取得してファイルの保存を行った方が安全、且つ融通が利くので特に使う必要はないでしょう。
名前を付けて保存ダイアログのサンプル
テキストボックス (textBox1) と、ファイルを参照するボタン (button1) が配置されたフォームから、名前を付けて保存ダイアログボックスを表示して、選択されたファイル名 (ファイルパス) をテキストボックスに表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
/// <summary> /// ボタンがクリックされたときのイベント処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { // テキストボックスからファイル名 (ファイルパス) を取得 string fileName = this.textBox1.Text; // SaveFileDialog クラスのインスタンスを生成 using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { // ファイルの種類リストを設定 saveFileDialog.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*"; // テキストボックスにファイル名 (ファイルパス) が設定されている場合は // ファイルのディレクトリー (フォルダー) を初期表示する if (fileName != string.Empty) { // FileInfo クラスのインスタンスを生成 FileInfo fileInfo = new FileInfo(fileName); // ディレクトリー名 (ディレクトリーパス) を取得 string directoryName = fileInfo.DirectoryName; // 存在する場合は InitialDirectory プロパティに設定 if (Directory.Exists(directoryName)) { saveFileDialog.InitialDirectory = directoryName; } } // ダイアログを表示 DialogResult dialogResult = saveFileDialog.ShowDialog(); if (dialogResult == DialogResult.Cancel) { // キャンセルされたので終了 return; } // 選択されたファイル名 (ファイルパス) をテキストボックスに設定 this.textBox1.Text = saveFileDialog.FileName; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
フォルダー選択ダイアログ
「フォルダーの参照ダイアログ」は System.Windows.Forms.CommonDialog の派生クラスになっているのでファイル選択ダイアログとはメンバーの構成が全く違います。
フォルダーを参照するダイアログはファイルを参照するダイアログに比べると設定するプロパティは少なくなります。
フォルダーの参照ダイアログボックス
FolderBrowserDialog
ユーザーにフォルダーのパスを選択してもらうには「フォルダーの参照ダイアログボックス (FolderBrowserDialog)」を使用します。
主なプロパティ
名前を付けて保存ダイアログのプロパティのうち、設定を意識する必要がありそうな主なプロパティは次の 4 種類。
プロパティ名 | 型 | 内容 |
---|---|---|
Description | string | ダイアログボックスのフォルダーツリービューの上部に表示する説明文を設定する。 |
RootFolder | SpecialFolder ※ | ダイアログボックスのフォルダーツリービューのルートノード (先頭のノード) として設定するフォルダーを SpecialFolder 列挙体で設定する。 |
SelectedPath | string | |
ShowNewFolderButton | bool | 新しいフォルダーを作成するボタンを表示するかどうかを設定する。表示する場合は「true」を、表示しない場合は「false」を指定する。 既定値は「true」。 |
※ System.Environment.SpecialFolder
ほぼ設定不要なプロパティ
フォルダーの参照ダイアログボックスで、設定が必要ない (既定値のままで OK) と思われるプロパティは次の 1 種類。
- ShowNewFolderButton
新しいフォルダーを作成するボタンは、ある方がユーザーに対して親切なので既定値で OK。
ユーザーに参照するフォルダーについての説明文を表示する
Description プロパティを設定することで、フォルダーを参照する目的などをユーザーに説明することができます。
説明文はフォルダーツリービューの上部に表示されます。
1 2 3 4 5 6 7 8 9 10 11 |
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "○○するフォルダーを選択してください。"; if (folderBrowserDialog.ShowDialog(this) == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // フォルダーパスを取得 string fileName = folderBrowserDialog.SelectedPath; // ダイアログのインスタンスを破棄する folderBrowserDialog.Dispose(); |
説明文が長い場合は自動で折り返して表示されます。
1 2 3 4 5 6 7 8 9 10 11 |
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "○○するフォルダーを選択してください。あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん"; if (folderBrowserDialog.ShowDialog(this) == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // フォルダーパスを取得 string fileName = folderBrowserDialog.SelectedPath; // ダイアログのインスタンスを破棄する folderBrowserDialog.Dispose(); |
説明文は改行を挿入して複数行設定こともできます。
1 2 3 4 5 6 7 8 9 10 11 |
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "○○するフォルダーを選択してください。\n2行目\n3行目\n4行目"; if (folderBrowserDialog.ShowDialog(this) == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // フォルダーパスを取得 string fileName = folderBrowserDialog.SelectedPath; // ダイアログのインスタンスを破棄する folderBrowserDialog.Dispose(); |
3 行まで表示されます。4 行目以降は表示されません。
特定のフォルダーおよびサブフォルダーのみ選択可能に設定する
ユーザーが参照可能なフォルダーを限定させたい場合などに RootFolder プロパティを設定することで、特定のフォルダーとサブフォルダーのみをユーザーに選択させることができます。
ネットワーク等のフォルダーを選択させたくない場合に、コンピューター (マイコンピューター) を表す System.Environment.SpecialFolder.MyComputer を設定すれば、コンピューター内のローカルフォルダーのみがフォルダーツリービューで選択可能になります。
1 2 3 4 5 6 7 8 9 10 11 12 |
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "○○するフォルダーを選択してください。"; folderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer; if (folderBrowserDialog.ShowDialog(this) == DialogResult.Cancel) { // [キャンセル] をクリックされた場合は終了 return; } // フォルダーパスを取得 string fileName = folderBrowserDialog.SelectedPath; // ダイアログのインスタンスを破棄する folderBrowserDialog.Dispose(); |
フォルダーの参照ダイアログのサンプル
テキストボックス (textBox1) と、フォルダーを参照するボタン (button1) が配置されたフォームから、フォルダーの参照ダイアログボックスを表示して、選択されたフォルダーパスをテキストボックスに表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/// <summary> /// ボタンがクリックされたときのイベント処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { // テキストボックスからフォルダーパスを取得 string folderPath = this.textBox1.Text; // FolderBrowserDialog クラスのインスタンスを生成 using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) { // 説明文を設定 folderBrowserDialog.Description = "フォルダーを選択してください。"; // テキストボックスにフォルダーパスが設定されている場合は選択する if (folderPath != string.Empty) { folderBrowserDialog.SelectedPath = folderPath; } // ダイアログを表示 DialogResult dialogResult = folderBrowserDialog.ShowDialog(); if (dialogResult == DialogResult.Cancel) { // キャンセルされたので終了 return; } // 選択されたフォルダーパスをテキストボックスに設定 this.textBox1.Text = folderBrowserDialog.SelectedPath; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } |