[解決済み] [Solved] OpenFileDialogでフォルダを選択するように設定する方法は?
質問
VS .NETで、プロジェクトのフォルダを選択する際に、OpenFileDialogやSaveFileDialogのようなダイアログが表示されますが、フォルダしか受け付けないように設定されているのですが、このようなダイアログはありますか? これを見たときから、どうなっているのか知りたかったのです。 FolderBrowserDialogのことは知っていますが、そのダイアログはあまり好きではありません。 小さすぎるし、パスを入力できる利点を生かしきれていないのです。
.NETからこれを行う方法がないことはもうほぼ確実ですが、アンマネージドコードからこれを行う方法にも同様に興味があります。 ダイアログをゼロから完全に再実装するのでなければ、どのようにダイアログを変更してこの動作をさせるのでしょうか?
また、FolderBrowserDialogの存在は知っているのですが、使いたくないときもあり、さらに、このようにダイアログを構成する方法に純粋に興味があることを再確認したいと思います。 FolderBrowserDialogを使うように言ってくれれば、一貫したUIエクスペリエンスを維持できますが、私の好奇心を満たさないので、回答としてカウントされません。
これもVista特有のものではなく、VS .NET 2003からこのダイアログを見るようになったので、Win2kやWinXPでも可能です。 これは、"正しい方法を知りたい"という質問というより、"VS 2003で初めてやりたいと思ったときから気になっていた"という質問ですね。 Vistaのファイルダイアログにこれを行うためのオプションがあることは理解していますが、XPで動作していたので、彼らが行ったことは知っています 何か を使えば動くようになります。 Vista特有の回答は、質問の文脈ではVistaが存在しないので、回答になっていません。
更新:Scott Wisniewskiの回答は、動作するサンプルが付属しているので、私はそれを受け入れますが、Sergeはダイアログのカスタマイズを指摘したことを評価されるべきだと思います(これは確かに.NETからは厄介ですが する また、Mark Ransomは、MSがこのタスクのためにカスタムダイアログを作成したのだろうと推測しています。
解決するには?
OpenFileOrFolderダイアログという、フォルダとファイルのどちらかを開くことができるダイアログを書きました。
AcceptFilesの値をfalseにすると、フォルダのみを受け入れるモードで動作します。
関連
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] enumを列挙するには
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] ディレクトリ内のすべてのファイルやフォルダを削除する方法は?
-
[解決済み] OpenFileDialogを使用してフォルダを選択するには?
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] データテーブルの並べ替え
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] "SSL/TLSセキュアチャネルの信頼関係を当局と確立できませんでした "の解決方法
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] このコンピュータには、.NET Framework 4.6またはそれ以降の更新プログラムがすでにインストールされています。
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] .NETで文字列から発音区分符号(アクセント)を削除するにはどうすればよいですか?
-
[解決済み] Math.Round(2.5)はなぜ3でなく2を返すのですか?