web-dev-qa-db-ja.com

.NETでリソースを作成して使用する方法

プログラムのさまざまな部分で簡単に参照して使用できるリソースを作成するにはどうすればよいですか?

私の特定の問題は、プログラムの状態に応じてアイコンを変更したいNotifyIconがあることです。よくある問題ですが、長い間苦労してきました。

164

まあ、StackOverflowの周りのさまざまなポイントを検索して一緒に調べた後(つまり、私はこの場所が既に大好きです)、ほとんどの問題は既にこの段階を過ぎていました。私は私の問題への答えを解決することができた。

リソースの作成方法:

私の場合、アイコンを作成します。ただし、リソースとして追加するデータの種類に関係なく、同様のプロセスです。

  • リソースを追加するプロジェクトを右クリックします。ソリューションエクスプローラーでこれを行います。リストから「プロパティ」オプションを選択します。
  • 「リソース」タブをクリックします。
  • バーの上部にある最初のボタンを使用すると、追加するリソースのタイプを選択できます。文字列で開始する必要があります。アイコンを追加したいので、それをクリックして、オプションのリストから「アイコン」を選択します。
  • 次に、2番目のボタン「リソースの追加」に移動します。新しいリソースを追加するか、既に作成されたアイコンがある場合は追加することもできます。選択したオプションのプロンプトに従います。
  • この時点で、新しく追加されたリソースをダブルクリックして編集できます。ソリューションエクスプローラーにもリソースが表示され、そこをダブルクリックしても同様に効果的です。

リソースの使用方法:

素晴らしいので、新しいリソースがあり、素敵なアイコンを変更したいのですが、どうすればいいですか?幸運なことに、C#はこれを非常に簡単にします。

すべてのリソースにアクセスできるProperties.Resourcesという静的クラスがあるので、私のコードは次のように簡単になりました。

paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;

できた!終わった!方法がわかれば、すべてがシンプルになりますよね。

281

Visual Studio 2010で期待していたように、上記は実際には機能しませんでした。Properties.Resourcesにアクセスできませんでした。許可の問題によりアクセスできませんでした。最終的には、リソースのプロパティの永続設定を変更する必要があり、Resources.Designer.csファイルを介してアクセスする方法を見つけました。このファイルには、MyNamespace.Properties.Resourcesを介してアイコンにアクセスできる自動ゲッターがありました。 .NameFromAddingTheResource。これにより、すぐに使用できるIconタイプのオブジェクトが返されます。

8

上記の方法はうまく機能します。

別の方法(ここではWebを想定しています)は、ページを作成することです。ページにコントロールを追加します。次に、デザインモードで、[ツール]> [ローカルリソースの生成]に移動します。リソースファイルが自動的にソリューションに表示され、ページ内のすべてのコントロールがリソースファイルにマップされます。

他の言語のリソースを作成するには、ファイル名の最後の拡張子(Account.aspx.en-US.resx、Account.aspx.es-ES.resx ...など)の前に4文字の言語を追加します。

コードビハインドの特定のエントリを取得するには、単にGetLocalResourceObject([resource entry key/name])メソッドを呼び出します。

6
Chuck Conway