VB.Net リソースとは何ですか?また、それらはどのように使用されますか?
ゲラルト/ピクサベイ
Visual Basic の学生がループ、条件ステートメント、およびサブルーチンについてすべて学習した後、次によく質問されることの 1 つは、「ビットマップ、.wav ファイル、カスタム カーソル、またはその他の特殊効果を追加するにはどうすればよいですか?」というものです。 1 つの答えはリソース ファイルです。リソース ファイルをプロジェクトに追加すると、実行速度が最大になり、アプリケーションのパッケージ化とデプロイの手間が最小限になるように統合されます。
ファイルをリソース ファイルに含める方法は、リソース ファイルを使用することだけではありません。 VB プロジェクトですが、実際の利点があります。たとえば、PictureBox コントロールにビットマップを含めたり、mciSendString Win32 API を使用したりできます。
Microsoft は、リソースを「アプリケーションと共に論理的に展開される実行不可能なデータ」と定義しています。
プロジェクトのリソース ファイルを管理する最も簡単な方法は、プロジェクトのプロパティで [リソース] タブを選択することです。これを表示するには、ソリューション エクスプローラーまたは [プロジェクト] メニュー項目の下のプロジェクト プロパティで [マイ プロジェクト] をダブルクリックします。
リソース ファイルの種類
- ストリングス
- 画像
- アイコン
- オーディオ
- ファイル
- 他の
リソース ファイルによるグローバリゼーションの簡素化
使用する リソース ファイル もう 1 つの利点があります。グローバル化の向上です。通常、リソースはメイン アセンブリに含まれますが、.NET ではリソースをサテライト アセンブリにパッケージ化することもできます。この方法では、必要なサテライト アセンブリのみを含めるため、より優れたグローバリゼーションを実現できます。マイクロソフトは各言語の方言にコードを与えました。たとえば、英語のアメリカ方言は文字列「en-US」で示され、フランス語のスイス方言は「fr-CH」で示されます。これらのコードは、カルチャ固有のリソース ファイルを含むサテライト アセンブリを識別します。アプリケーションが実行されると、Windows は、サテライト アセンブリに含まれるリソースを、Windows の設定から決定されたカルチャと共に自動的に使用します。
VB.Net リソース ファイルの追加
リソースは VB.Net のソリューションのプロパティであるため、他のプロパティと同じように、My.Resources オブジェクトを使用して名前でアクセスします。説明のために、これを調べます応用アリストテレスの 4 つの要素 (風、地、火、水) のアイコンを表示するように設計されています。
まず、アイコンを追加する必要があります。プロジェクトのプロパティから [リソース] タブを選択します。 [リソースの追加] ドロップダウン メニューから [既存のファイルの追加] を選択して、アイコンを追加します。リソースが追加されると、新しいコードは次のようになります。
Private Sub RadioButton1_CheckedChanged( ...
MyBase.Load を処理します
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = '地球'
サブ終了
Visual Studio での埋め込み
Visual Studio を使用している場合は、リソースをプロジェクト アセンブリに直接埋め込むことができます。次の手順で、イメージをプロジェクトに直接追加します。
- ソリューション エクスプローラーでプロジェクトを右クリックします。 [追加] をクリックし、[既存のアイテムの追加] をクリックします。
- 画像ファイルを参照し、[開く] をクリックします。
- 追加した画像のプロパティを表示します。
- Build Action プロパティを Embedded Resource に設定します。
その後、次のようなコードでビットマップを直接使用できます (ビットマップはアセンブリ内の 3 番目のインデックス番号 2 でした)。
Dim res() As String = GetType(Form1).Assembly.GetManifestResourceNames()
PictureBox1.Image = 新しい System.Drawing.Bitmap( _
GetType(Form1).Assembly.GetManifestResourceStream(res(2)))
これらのリソースは次のように埋め込まれていますが、 バイナリ メイン アセンブリまたはサテライト アセンブリ ファイルに直接データを格納する場合、Visual Studio でプロジェクトをビルドすると、拡張子 .resx を使用する XML ベースのファイル形式によって参照されます。たとえば、作成した .resx ファイルのスニペットを次に示します。
type='System.Resources.ResXFileRef,
System.Windows.Forms'>
..ResourcesCLOUD.ICO;System.Drawing.Icon,
System.Drawing、バージョン = 2.0.0.0、
文化=中立、
PublicKeyToken=b03f5f7f11d50a3a
.resx ファイルは単なるテキスト XML ファイルであるため、.NET Framework アプリケーションで直接使用することはできません。バイナリ '.resources' ファイルに変換して、アプリケーションに追加する必要があります。このジョブは、Resgen.exe という名前のユーティリティ プログラムによって実行されます。これを行って、グローバリゼーション用のサテライト アセンブリを作成することができます。コマンド プロンプトから resgen.exe を実行する必要があります。
ソース
「リソースの概要」。マイクロソフト、2015 年。