プログラムのさまざまな部分で簡単に参照して使用できるリソースを作成するにはどうすればよいですか?
私の特定の問題は、プログラムの状態に応じてアイコンを変更したいNotifyIconがあることです。よくある問題ですが、長い間苦労してきました。
まあ、StackOverflowの周りのさまざまなポイントを検索して一緒に調べた後(つまり、私はこの場所が既に大好きです)、ほとんどの問題は既にこの段階を過ぎていました。私は私の問題への答えを解決することができた。
リソースの作成方法:
私の場合、アイコンを作成します。ただし、リソースとして追加するデータの種類に関係なく、同様のプロセスです。
リソースの使用方法:
素晴らしいので、新しいリソースがあり、素敵なアイコンを変更したいのですが、どうすればいいですか?幸運なことに、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を想定しています)は、ページを作成することです。ページにコントロールを追加します。次に、デザインモードで、[ツール]> [ローカルリソースの生成]に移動します。リソースファイルが自動的にソリューションに表示され、ページ内のすべてのコントロールがリソースファイルにマップされます。
他の言語のリソースを作成するには、ファイル名の最後の拡張子(Account.aspx.en-US.resx、Account.aspx.es-ES.resx ...など)の前に4文字の言語を追加します。
コードビハインドの特定のエントリを取得するには、単にGetLocalResourceObject([resource entry key/name])メソッドを呼び出します。