2005年4月の過去ログ

 

MS社員のブログ経由で、インターネットをやめられなく中毒になった人が餓死で亡くなったそうです。何も食べたくなくなるまで彼を夢中にさせたものって・・・


夜にコンピュータに向かってタイプしていると妻にうるさいと怒られるんです。そこで、とっても静かなキーボードを探しているんですが、このブログの読者の方で静かなキーボードを使っていらっしゃるか、知っているという方いらっしゃいますでしょうか。もし知っているようでしたら、コメントにメッセージください。キーボードで夫婦関係が悪くなるのは嫌なので・・・(笑)


ハーバード大学経済学教授が農場にあった馬の糞を盗もうとして御用となったそうです。63歳にもなる、しかもハーバード大学の教授がどうして馬の糞を盗もうとしたんでしょう?記事にはその理由が書かれていませんでした。しかも、それ一回だけじゃなくて前にも何度も盗んでいたことが発覚。


経済学の教授・・・需要と供給の基礎がわかってませんね。基礎からやり直し!(笑)


VS2005で何の気なしにCtrl+Tabをやってみたら、下の画像のようにメニューが出てきました。これはいいですね。単に次々と開いているファイルを変えていくのではなく、現在VS2005で何が開いているか一目瞭然で、切り替えも簡単です。


VS2005ControlTab.gif


私のうちのマシンにはVS2005のベータ2とNUnit 2.2そしてTest Driven .NETがインストールされていますが、特別な設定なしでVS2005上でTest Driven .NETがきちんと動いています。参考までに。


アメリカで活躍する日本人の方々がここに紹介されています。日本人は私の周りにもたくさんいるのですが、どうしても日本人の方と仕事をする機会がないんですよね。私の会社で現在4人ほど開発者を採用しているのですが、英語を話せてある程度.NETの経験がある方、メールをいただければうれしいです。日本人のプログラマ、ここら辺にいないかなあ・・・


気分は昭和という記事がありました。昔を懐かしむことを書いた記事でしたが、「昭和」って古い時代になってきてしまっているんだなあとつくづく感じました。昭和生まれの私としては年を取ったような気がします。昭和から平成になったのは私が高校生の時でしたから、一昔といえば一昔なんでしょうね。


今日は、VS2005のリソースエディタについて。


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


ProjectPropertyCS.gif


すると前バージョンとはかなり違うプロジェクトプロパティの画面が表示されます。そこで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(消費)するクラスを作ってくれるんです。


ResourceConsumer.gif


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


ResourcesDesigner.gif


クラスの名前はそのままResourcesです。名前空間も含めると、[ProjectName].Properties.Resourcesを使って自分が追加したリソースに簡単にアクセスできてしまうんです。私の場合はリソースに追加したアイコンをImageListに追加するのが目的だったので、次のようにしました。


imageList.Images.Add(Properties.Resources.document);


簡単だし、コードを読む方にとっても読みやすいし、とてもきれいだと思います。リソースファイルの扱いはVS2005ではとても楽になったと思います。


前にSatelliteアセンブリについてブログをしたことがありましたが、MSのニュースグループでAssembly Binding Log ViewerなるものをMSの方から紹介されましたので、ブログしておきます。


つまり、どうしてAssemblyがCLRによってロードされなかったかなどの分析に役立つそうです。このツールを知っていたら前に私が遭遇した問題は簡単に解決されたはずです。忘れないようにメモっておきます。


私だけでしょうか・・・ImageListにイメージを追加しようとしても追加されない現象に遭遇しているのは。