「ダイアログを表示してユーザーにフォルダーを選択させたい」
という場合の方法です。
今回は「FilderBrowseDialog」を使用した方法を紹介していきます。
ダイアログでフォルダを選択する方法|FolderBrowserDialogを使った方法を紹介
ダイアログを表示してフォルダを選択するには、大きく2つの方法があります。
- FolderBrowserDialog を使った方法
- OpenFileDialog を使った方法 オススメ
個人的には、2つ目のOpenFileDialogを使った方法が好きです。
本記事では1つ目の、FolderBrowseDialogを使ったフォルダ選択方法を紹介します。
※2つ目のOpenFileDialogを使ったフォルダ選択については、以下の記事で紹介しています。こちらも合わせてご覧ください(本記事の最後にも、再度リンク張っておきます)
【C#】ダイアログボックスでフォルダを選択する方法|選択できるのはファイルだけじゃない!フォルダも選択できるのだ
ダイアログボックスからフォルダを選択したい こんな場面、あると思います。 通常は、ダイアログボックスで「ファイルを選択したい」、という事が大半ですが、時にはフォルダを選択したい!という事 ...
続きを見る
FolderBrowserDialogを使ってフォルダを選択する方法
FolderBrowserDialogを使うと、このようなダイアログが表示されフォルダを選択することが可能です。
でもこのダイアログ使いづらくて、個人的にはあまり好きではありません…。
ツリー上にフォルダを開いていくのが使い辛い。
※できれば次項で説明する、OpenFIleDialogを使いたい。
サンプルのソースコードはこのような感じです。
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 | private void TestFunc() { using (FolderBrowserDialog dialog = new FolderBrowserDialog()) { // 初期選択フォルダーが設定できる① dialog.SelectedPath = @"c:\temp\"; // ダイアログに表示する説明文を設定できる② dialog.Description = "ここに説明を書く"; // 新しくフォルダを作成を許可する② dialog.ShowNewFolderButton = true; // ダイアログを表示する。 DialogResult result = dialog.ShowDialog(); if (result == DialogResult.OK) { // 選択されたフォルダを取得する string selectedPath = dialog.SelectedPath; MessageBox.Show(string.Format("{0}が選択されました", selectedPath)); } else { // キャンセルの場合は何もしない } } } |
ダイアログを閉じた後は、「SelectedPath 」でユーザが選択したフォルダパスを取得することができます。
サンプルコードのように、ShowDialogの戻り値を見て、ユーザーがキャンセルした場合もしっかり考慮しましょう。
また、「FolderBrowserDialog」はDisposeメソッドがあるので使い終わったらDispose()しています。
ここではusingを使っています。(usingって何?って方は以下の記事参照ください)
【C#】usingの使い方|リソースの開放忘れ防止などに有効(IDisposable,、Dispose)
「using」 何これ??という方向けの解説記事です。 【C#】usingの使い方|リソースの解放忘れ防止などに有効(IDisposable,、Dispose) usginでよく見るソースコードはこん ...
続きを見る
さて、ソースコード中の①②③は、以下の画像の①②③に対応します。
まずは①
1 | dialog.SelectedPath = @"c:\temp\"; |
SelectedPathを設定することで、ダイアログを開いた時の初期選択フォルダーを設定してあげることができます。
このSelectedPathを設定してあげることで、使いやすさはグーンと向上すると思います。設定しないと初期値は(たしか)デスクトップになるので、そこから目的のフォルダを選択するのは結構面倒。
ベースとなるフォルダが決まっているのであれば、SelectedPathを設定してあげるのが親切です!
続いて②
1 | dialog.Description = "ここに説明を書く"; |
Descriptionで、ダイアログ開いた時の説明文みたいなのを設定することが可能です。
(例えば)「保存先のフォルダを選択してください」とかね。
続いて③
1 | dialog.ShowNewFolderButton = true; |
ShowNewFolderButtonをtrueに設定してあげることで、「新しいフォルダーの作成」ボタンを表示してあげることが可能となります。
用途に応じてここは設定しましょう。
※もちろん false に設定すると、このボタンは非表示になります。
以上が、FolderBrowserDialogを使ったフォルダの選択方法でした。
OpenFileDialogを使ってフォルダを選択する方法
以下の記事で紹介しています。是非ご覧ください。
【C#】ダイアログボックスでフォルダを選択する方法|選択できるのはファイルだけじゃない!フォルダも選択できるのだ
ダイアログボックスからフォルダを選択したい こんな場面、あると思います。 通常は、ダイアログボックスで「ファイルを選択したい」、という事が大半ですが、時にはフォルダを選択したい!という事 ...
続きを見る