VB2008で色々と試行錯誤をしております。
さて質問ですが、「ファイルを開く」ダイアログをカスタマイズしたいと
考えています。
内容は以下のとおりです。
1.選択ファイルはjpg,gifファイルに限定
2.ダイアログの右側にピクチャーボックスを設置し、ダイアログのファイルリスト中のファイルを選択状態にした場合、
このピクチャーボックスに画像のプレビューを表示させる。
1.についてはフィルタリングを行えばいいと思いますが、OpenFileDialogを直接カスタマイズするのは難しいようです。
何かよい方法はないでしょうか?
よろしくお願いします。
.NET Framework 1.1時代にやった事がありますが,かなりしんどいです。
まずはVista以前用。
ダイアログテンプレートを作成して,そこへユーザーコントロールを貼り付ける形になります。
・Customizing Common Dialog Boxes
http://msdn.microsoft.com/en-us/library/ms646951.aspx
・Open and Save As Dialog Boxes
http://msdn.microsoft.com/en-us/library/ms646960.aspx
・GetOpenFileName Function
http://msdn.microsoft.com/en-us/library/ms646927.aspx
・OPENFILENAME Structure
http://msdn.microsoft.com/en-us/library/ms646839.aspx
Vista以降では推奨APIが変更になっています。
こちらは使った事がないのですが,カスタマイズ自体は出来るようです。
・Common Item Dialog
http://msdn.microsoft.com/en-us/library/bb776913.aspx
・IFileOpenDialog Interface
http://msdn.microsoft.com/en-us/library/bb775834.aspx
私がはまったのは,気が付くとコントロールがGCされている,というものでした。
結局,カスタマイズした物は使わない,ということで処理したので,解決方法はわかっていませんが……。
YuO様、ご回答ありがとうございます。
中々難しそうですね。
教えて頂いたページをもう少し読んでみます。
(そもそも説明が英語というのがかなりキツいです)
ところで、Vistaの場合は推奨APIが変更されているとのことですが、
どのような変更なのでしょうか?
よろしくお願いします。
Vistaでの新バージョンコモンダイアログでは,COMを使うように変更されています。
Common Item Dialogのページの画像にあるように,見た目上ほとんどExplorerと変化がなくなりました。
なお,.NET Frameworkでは OpenFileDialog (正確には FileDialog) の,AutoUpgradeEnabled プロパティで制御できます。