今日は、VS2005のリソースエディタについて。
一言で言うと、「簡単!」です。今日はどうしてリソースエディタをいじっていたかというと、ImageListにイメージを追加しようとしても、家で使っているコンピュータ上ではなぜか追加されなかったので、Kazzさんからの助言を元にコードでやってみようと思ったんです。Kazzさんのコードをさらにもうちょっと簡単にすることはできないかと、リソースにアイコンを入れてそれからImageListにコードで追加できないかやってみました。初めに、Resourceを追加することから始めます。C#プロジェクトでは最初の段階ではResourceファイルは追加されていません。C#プロジェクトのプロパティを開いてみましょう。

すると前バージョンとはかなり違うプロジェクトプロパティの画面が表示されます。そこでResourcesタブをクリックしAdd ResourceからAdd Existing Fileを選びます。ここの例では二つのアイコンを追加しました。(ちなみにVS2005にはWinXP用のアイコンがついてきます。C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibraryにあります。)
すると、Resource.resxがPropertiesのフォルダの下に追加されて、それと同時にResourcesというフォルダがプロジェクトに追加されて他のパスに存在していたファイルをそこのコピーしてくれます。ここまでは、あまり驚くことではありません。これはVisual Studioではできなかったことですが、.NET Framework内のResXResourceWriterやResGen.exeを使ってできることです。さらに便利なのは、そのResourceをConsume(消費)するクラスを作ってくれるんです。

このクラスはどこに作成されるかは下の画像をご覧ください。

クラスの名前はそのままResourcesです。名前空間も含めると、[ProjectName].Properties.Resourcesを使って自分が追加したリソースに簡単にアクセスできてしまうんです。私の場合はリソースに追加したアイコンをImageListに追加するのが目的だったので、次のようにしました。
imageList.Images.Add(Properties.Resources.document);
簡単だし、コードを読む方にとっても読みやすいし、とてもきれいだと思います。リソースファイルの扱いはVS2005ではとても楽になったと思います。
コメント書き込み