【C#】フォルダを選択するダイアログ
C#でフォルダを選択するプログラムのコードを検索していたら,以下のものを見つけました.
var Dlg = new FolderBrowserDialog(); // 説明文追加 Dlg.Description = "選択"; // 表示して結果がOKなら if(Dlg.ShowDialog() == DialogResult.OK){ // ここでいろいろする }
まあこれでやりたいことはできるのですが,見た目がどうにも気に入らないんです.
こうじゃなくて,こう,何ていうの,アレ,アレだよ,アレ!
ファイル選択ダイアログみたいな感じがいいの!
と思ったので探してみたところ,ありました.以下に方法を記します.
1.まずNuGetで「WindowsAPICodePack」を探して導入します."Core"と"Shell"両方です.
2.次にそれらを参照に追加してから,以下のコードを記入します.
// using Microsoft.WindowsAPICodePack.Dialogsを追加してから // ------------------------------ var Dialog = new CommonOpenFileDialog(); // フォルダーを開く設定に Dialog.IsFolderPicker = true; // 読み取り専用フォルダ/コントロールパネルは開かない Dialog.EnsureReadOnly = false; Dialog.AllowNonFileSystemItems = false; // パス指定 Dialog.DefaultDirectory = Application.StartupPath; // 開く var Result = Dialog.ShowDialog(); // もし開かれているなら if(Result == CommonFileDialogResult.Ok){ // ここでいろいろする(開いたフォルダはDialog.FileNameで取得) }
こんな感じになります.