My.Resources オブジェクト

アプリケーションのリソースにアクセスするための、プロパティとクラスを提供します。

解説

My.Resources オブジェクトを使用すると、アプリケーションのリソースへのアクセスが可能になり、アプリケーションに必要なリソースを動的に取得できるようになります。詳細については、「アプリケーション リソースの管理」を参照してください。

My.Resources オブジェクトはグローバルなリソースだけを公開します。フォームに関連付けられたリソース ファイルへのアクセスはできません。フォームのリソースには、フォームからアクセスする必要があります。詳細については、「チュートリアル : Windows フォームのローカリゼーション」を参照してください。

アプリケーションのカルチャ固有のリソース ファイルに、My.Resources オブジェクトからアクセスできます。既定では、My.Resources オブジェクトは、UICulture プロパティのカルチャに一致するリソース ファイルからリソースを検索します。ただし、この動作をオーバーライドして、リソースに使用するカルチャを指定することもできます。詳細については、「デスクトップ アプリケーションのリソース」を参照してください。

プロパティ

My.Resources オブジェクトのプロパティでは、アプリケーションのリソースに読み取り専用でしかアクセスできません。リソースを追加または削除するには、プロジェクト デザイナー を使用します。詳細については、「方法 : リソースを追加または削除する」を参照してください。プロジェクト デザイナーで追加されたリソースには、My.Resources.resourceName を使用してアクセスできます。

また、ソリューション エクスプローラーからプロジェクトを選択し、[プロジェクト] メニューの [新しい項目の追加] または [既存項目の追加] をクリックすることによっても、リソース ファイルを追加または削除できます。この方法で追加したリソースには、My.Resources.resourceFileName.resourceName を使用してアクセスできます。

各リソースには名前、カテゴリ、値が定義され、これらのリソース設定によってプロパティが My.Resources オブジェクトに含まれるリソースにアクセスする方法が決まります。プロジェクト デザイナーで追加されたリソースの場合は、次のようになります。

  • 名前はプロパティの名前

  • リソース データはプロパティの値

  • カテゴリはプロパティの種類

[カテゴリ]

プロパティのデータ型

Strings

[文字列]

[イメージ]

Bitmap

[アイコン]

Icon

[オーディオ]

UnmanagedMemoryStream

UnmanagedMemoryStream クラスは Stream クラスから派生しているため、ストリームを受け取るメソッド (Play メソッドなど) で使用できます。

[ファイル]

  • テキスト ファイルの場合は String

  • イメージ ファイルの場合は Bitmap

  • アイコン ファイルの場合は Icon

  • サウンド ファイルの場合は UnmanagedMemoryStream

その他

デザイナーの [型] 列の情報によって決まります。

Classes

My.Resources オブジェクトは各リソース ファイルを、共有プロパティを持つクラスとして公開します。クラス名はリソース ファイルの名前と同じです。先のセクションにあるとおり、リソース ファイルのリソースはクラスのプロパティとして公開されます。

使用例

この例はアプリケーションのリソース ファイルに Form1Title という名前の文字列リソースにフォームのタイトルを設定します。この例を実行するにはアプリケーションのリソース ファイルに Form1Title という文字列が含まれている必要があります。詳細については、「方法 : リソースを追加または削除する」を参照してください。

Sub SetFormTitle()
    Me.Text = My.Resources.Form1Title
End Sub

次の例は、アプリケーションのリソース ファイルに格納された Form1Icon という名前のアイコンを、フォームのアイコンに設定します。この例を実行するにはアプリケーションのリソース ファイルに Form1Icon という名前のアイコンが必要です。

Sub SetFormIcon()
    Me.Icon = My.Resources.Form1Icon
End Sub

この例では Form1Background という名前のアプリケーションのリソース ファイルにあるイメージ リソースにフォームの背景イメージを設定します。この例が動作するためにはアプリケーションのリソース ファイルに Form1Background という名前のイメージ リソースが含まれている必要があります。

Sub SetFormBackgroundImage()
    Me.BackgroundImage = My.Resources.Form1Background
End Sub

この例ではアプリケーションのリソース ファイルに Form1Greeting という名前のオーディオ リソースとして格納されているサウンドを再生します。この例を実行するにはアプリケーションのリソース ファイルに Form1Greeting という名前のオーディオ リソースが含まれている必要があります。My.Computer.Audio.Play メソッドは、Windows フォーム アプリケーションでのみ使用できます。

Sub PlayFormGreeting()
    My.Computer.Audio.Play(My.Resources.Form1Greeting, 
        AudioPlayMode.Background)
End Sub

この例ではアプリケーションの文字列リソースのフランスのカルチャのバージョンを取得します。リソース Message はという名前です。My.Resources オブジェクトの使用例を ChangeUICulture が使用するカルチャを変更します。

この例が動作するためにはアプリケーションのリソース ファイルに Message という文字列が含まれている必要がありアプリケーションはそのリソース ファイルである Resources.fr-FR.resx フランスのカルチャのバージョンが必要です。詳細については、「方法 : リソースを追加または削除する」を参照してください。アプリケーションにリソース ファイルのフランスのカルチャのバージョンがない場合はMy.Resource のオブジェクトは既定のカルチャのリソース ファイルからリソースを取得します。

Sub ShowLocalizedMessage()
    Dim culture As String = My.Application.UICulture.Name
    My.Application.ChangeUICulture("fr-FR")
    MsgBox(My.Resources.Message)
    My.Application.ChangeUICulture(culture)
End Sub

参照

処理手順

方法 : リソースを追加または削除する

チュートリアル : Windows フォームのローカリゼーション

概念

デスクトップ アプリケーションのリソース

その他の技術情報

アプリケーション リソースの管理