.NET でリソースを作成および使用する方法
-
01-07-2019 - |
質問
プログラムのさまざまな部分で簡単に参照および使用できるリソースを作成するにはどうすればよいですか?
私の問題は、プログラムの状態に応じてアイコンを変更したい NotifyIcon があることです。よくある問題ですが、私は長い間悩んでいました。
解決
さて、StackOverflow 周辺のさまざまなポイントを検索してまとめた結果 (いや、私はすでにこの場所が大好きです)、ほとんどの問題はすでにこの段階を過ぎていました。それでも、私は自分の問題に対する答えを見つけることができました。
リソースの作成方法:
私の場合はアイコンを作成したいと思います。ただし、リソースとして追加するデータの種類に関係なく、これは同様のプロセスです。
- リソースを追加するプロジェクトを右クリックします。これはソリューション エクスプローラーで実行します。リストから「プロパティ」オプションを選択します。
- 「リソース」タブをクリックします。
- バーの上部にある最初のボタンでは、追加するリソースのタイプを選択できます。文字列で開始する必要があります。アイコンを追加したいので、それをクリックし、オプションのリストから「アイコン」を選択します。
- 次に、2 番目のボタン「リソースの追加」に移動します。新しいリソースを追加することも、既にアイコンが作成されている場合はそれを追加することもできます。選択したオプションの指示に従ってください。
- この時点で、新しく追加したリソースをダブルクリックして編集できます。リソースはソリューション エクスプローラーにも表示され、そこをダブルクリックすることも同様に効果的であることに注意してください。
リソースの使用方法:
新しいリソースができたので、素敵に変化するアイコンが欲しくてうずうずしています...どうやってそれを行うのでしょうか?幸いなことに、C# を使用すると、これが非常に簡単になります。
という静的クラスがあります Properties.Resources
これにより、すべてのリソースにアクセスできるようになり、私のコードは次のように単純になりました。
paused = !paused;
if (paused)
notifyIcon.Icon = Properties.Resources.RedIcon;
else
notifyIcon.Icon = Properties.Resources.GreenIcon;
終わり!終了した!やり方がわかれば、すべてが簡単ですよね。
他のヒント
上記は、実際には Visual Studio 2010 で期待したように機能しませんでした。Properties.Resources にアクセスできません。権限の問題によりアクセスできないと言われました。最終的には、リソースのプロパティで永続設定を変更する必要がありましたが、Resources.Designer.cs ファイルを介してアクセスする方法を見つけました。このファイルには、MyNamespace.Properties.Resources を介してアイコンにアクセスできる自動ゲッターが含まれていました。 .NameFromAddingTheResource。これにより、すぐに使用できる Icon 型のオブジェクトが返されます。
上記の方法はうまく機能します。
別の方法 (ここでは Web を想定しています) は、ページを作成することです。ページにコントロールを追加します。次に、デザインモードで次の場所に移動します。[ツール] > [ローカル リソースの生成]。リソース ファイルは、ページ内のすべてのコントロールがリソース ファイルにマップされた状態で、ソリューションに自動的に表示されます。
他の言語のリソースを作成するには、ファイル名の末尾の拡張子の前に 4 文字の言語を追加します (Account.aspx.en-US.resx、Account.aspx.es-ES.resx... など)。
コードビハインド内の特定のエントリを取得するには、次のメソッドを呼び出すだけです。GetLocalResourceObject([リソース エントリ キー/名前])。