0

上部の各 ToolStripButton に画像がある既存のフォームを持つアプリケーションがあります。これらの画像はresxファイル内にあり、このフォームでのみ使用できるように見えます。同じ画像で別のフォームを作りたいです。

これらの画像をインポートして、すべてのフォームで使用できるようにする適切な方法は何ですか? たとえば、ほとんどのフォームに [保存] ボタンと [開く] ボタンがあります。

4

1 に答える 1

2

作業中の大規模なプロジェクトでは、ユーザー コントロールとフォームを含む多くのプロジェクトを含むソリューションがあります。そのため、ソリューション全体のさまざまな種類のリソース (個別のリソース ファイル) を保持する Resources という 1 つの追加プロジェクトがあります。

  • 文字列 (翻訳)
  • 画像
  • プロパティ名
  • 等々

リソースが必要なソリューション内の他のすべてのプロジェクトにプロジェクトを参照します。このようにリソースは別々に保持され、同じリソース名が使用されている限り、dll を簡単に置き換えることができ、何も壊れることはありません。

また、たとえば同じイメージが必要な完全に異なるプロジェクト (ソリューション) で dll アセンブリを使用します。正しく名前を付けると (たとえば、Company.Resources.dll -> Company.Resources.Images.Toolbar.Add/Remove/Settings)、すべての新しいプロジェクトにうまく適合します。

あなたの場合、同じリソースを使用するために ProjectB で ProjectA を参照することはもちろん可能ですが (プロジェクトが同じソリューション内にある限り)、これが常に可能であるとは限りません (たとえば、回避するために循環参照)。


新しい WinForm ソリューションを作成します (私の例では、2 つのプロジェクトを持つ 1 つのソリューション)。クラス ライブラリタイプの新しいプロジェクトを追加します。

リソース プロジェクトの追加

resourcesプロジェクトに新しいリソースを追加します (文字列と画像の私の例では):

リソース プロジェクトへのリソースの追加

リソース プロジェクト リソースを追加する

テキストを追加する

画像のリソース ファイルの追加:

画像リソースを追加する

いくつかの画像を追加します:

画像リソース ファイルへの画像の追加

ファイルに画像を追加する

リソース プロジェクトを他のプロジェクトから参照します。

リソース プロジェクトを参照する

参照リソース プロジェクト

重要=> アセンブリの外部からリソースを使用するには、可視性を public に設定する必要があります。

リソースの可視性を設定する

ソリューションを一度コンパイルすると、どこからでも参照リソース プロジェクトを使用できます。

リソース プロジェクトの使用

于 2013-10-31T21:09:24.413 に答える