• ベストアンサー

OpenFileDialogの自作

.Net2005にてSystem.Windows.Forms.OpenFileDialogを自作したいと思っています。(ファイルを開く操作のほかにも操作したいことがあるので、ウィザード形式にしてはじめにファイルを選択させたいと考えています) そこで、あらためてOpenFileDialogの動作を確認してみると、 結構高機能なんですよね。 http://www.aisto.com/roeder/dotnet/のリフレクターでソースを見ても、GUIまでは分かりません。 OpenFileDialogと同等の機能でソースが公開されているものや 自作するのに参考になりそうなサイト等ありますでしょうか? なお、私が分からないと感じている点は下記です。 ・「最近使ったファイル」や「マイコンピュータ」のリスト(?)が画面左に表示される。 (このリストの実現方法 またアイコンイメージはどこからどうやって取得すればよいか) ・「マイコンピュータ」をクリックするとすべてのドライブが出るが "ハードディクスドライブ"という文字の下に青色のグラデーション下線まで表示されている ・画面右上に、戻る、1つ上のフォルダに移動するといった機能を表すボタン(?)があるが、マウスカーソルを合わせたときだけ、ボタンのように境界がふんわりと表示される 等々、いろいろ勉強しなければならないことが多いと感じています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

今ひとつ、なぜ作るのかがわかりませんが・・・ アイコンはsystem32\shell32.dllや、explorer.exeからWIN32APIでとれます。 ボタンのように境界がふんわりと表示される>これはToolStripを使うことになると思います。

sire
質問者

お礼

ご回答ありがとうございました。 確かにボタンのように見えたのはToolStripでした。 (Spy++で確認) OpenFileDialogと同じものを作ろうと思っていたのですが、 やってみると結構大変で、上にあげたもの以外にも リストに表示されたファイルを右クリックしたら、メニューを出すとか いろいろやらないといけないことがあり、 結局、http://msdn2.microsoft.com/en-us/library/ms996463.aspx を参考にカスタマイズしました。

その他の回答 (1)

  • yonfa
  • ベストアンサー率52% (22/42)
回答No.2

> ・「マイコンピュータ」をクリックするとすべてのドライブが出るが > "ハードディクスドライブ"という文字の下に青色のグラデーション下線まで表示されている リストビューコントロールのグルーピング機能によるものです。 XP以降、Comctl32.dllのバージョン6からの機能です。

参考URL:
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/listview_overview.asp
sire
質問者

お礼

ご回答をありがとうございました。

関連するQ&A

専門家に質問してみよう