C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ツールボックスへアイコンを表示する方法


(過去ログ 10 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■1979 / inTopicNo.1)  ツールボックスへアイコンを表示する方法
  
□投稿者/ M.K (7回)-(2007/03/12(Mon) 09:36:46)

分類:[C# (Windows)] 

何時もお世話になっております、M.Kと申します。

開発環境は WinXP SP2 + VS2005 + C# です。

今回は作成したコンポーネントをツールボックスに登録した際に、独自のアイコンを
表示したく以下の様に記述を行っているのですが、どうにも上手く行きません。

アイコンの登録にあたり、以下の手順を踏んでいます。

(1) 16x16 24bit のビットマップを作成し、"CustomComponent.bmp"として保存する。
(2) 上記ビットマップをプロジェクトに登録し、ビルドアクションを"埋め込まれたリソース"とする。
(3) ToolboxBitmap 〜 の記述を行う。(CustomComponent は仮の名前です)

  [ToolboxBitmap(typeof(CustomComponent), "CustomComponent.bmp")]
  public class CustomComponent : Component
  {

   〜 中略 〜

  }

typeof(CustomComponent) を typeof(Panel) 等にするとアイコンがパネルの物に変わる
ため、作成しているビットマップが不適切な気がするのですが、どのようなビットマップ
が不適切なのかが分からないので、その辺りも併せて教えて頂けると幸いです。

以上 宜しくお願いします。

引用返信 編集キー/
■1988 / inTopicNo.2)  Re[1]: ツールボックスへアイコンを表示する方法
□投稿者/ ぼのぼの (24回)-(2007/03/12(Mon) 17:06:28)
自分の環境で試したところ、bmpをプロジェクトの直下に配置したらうまくいきました。

よくわからないですが、これとか関係してるんでしょうか?

http://support.microsoft.com/kb/311315/ja

の末尾付近から引用
----
注: GetType(MyNameSpace.MyUserControl)と "MyIcon.bmp"をパラメータとして渡す場合、
システムにシステムがコンパイル済みのアセンブリでの MyNameSpace.MyIcon.bmp 名前のリソース
を検索するよう強制されています。
----
引用返信 編集キー/
■1990 / inTopicNo.3)  Re[2]: ツールボックスへアイコンを表示する方法
□投稿者/ M.K (9回)-(2007/03/12(Mon) 18:51:00)
No1988 (ぼのぼの さん) に返信

> 自分の環境で試したところ、bmpをプロジェクトの直下に配置したらうまくいきました。

私もbmpはプロジェクトの直下に配置してますので、ここは関係なさそうですね。

> 注: GetType(MyNameSpace.MyUserControl)と "MyIcon.bmp"をパラメータとして渡す場合、
> システムにシステムがコンパイル済みのアセンブリでの MyNameSpace.MyIcon.bmp 名前のリソース
> を検索するよう強制されています。

直接的には関係なかったのですが、Reflectorと言うツールを使って自分の作成したDLLを
調べて見ると、コンポーネントとビットマップの名前空間が違っている事に気がつきました。

そこでプロジェクトのプロパティから「規定の名前空間」をクラスが定義されている名前
空間と同じくした所、無事にアイコンが表示されるようになりました。

規定の名前空間がまさかこんな所に影響してるとは思っても見ませんでした(^^;

どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -