My.Resources 对象

提供了用于访问应用资源的属性和类。

注解

My.Resources 对象提供对应用程序资源的访问权限,并允许你动态检索应用程序的资源。 有关详细信息,请参阅管理应用程序资源 (.NET)

My.Resources 对象只公开全局资源。 它不提供对与窗体关联的资源文件的访问权限。 必须从窗体访问窗体资源。

可以从 My.Resources 对象访问应用程序特定于区域性的资源文件。 默认情况下,My.Resources 对象从与 UICulture 属性中的区域性匹配的资源文件中查找资源。 不过,你可重写此行为并指定要用于资源的特定区域性。 有关详细信息,请参阅 .NET 应用中的资源

属性

My.Resources 对象的属性提供对应用程序资源的只读访问权限。 若要添加或删除资源,请使用“项目设计器”。 可使用 My.Resources.resourceName 访问通过“项目设计器”添加的资源。

还可通过在“解决方案资源管理器”中选择项目,然后从“项目”菜单中单击“添加新项”或“添加现有项”来添加或删除资源文件。 可使用 My.Resources.resourceFileName.resourceName 访问以这种方式添加的资源。

每个资源都有一个名称、类别和值,这些资源设置决定了访问资源的属性在 My.Resources 对象中的显示方式。 对于在“项目设计器”中添加的资源:

  • 名称确定属性的名称,

  • 资源数据是属性的值,

  • 类型确定属性的类型:

Category 属性数据类型
字符串 字符串
映像 Bitmap
图标 Icon
音频: UnmanagedMemoryStream

UnmanagedMemoryStream 类派生自 Stream 类,因此它可用于采用流的方法,例如 Play 方法。
文件 - 文本文件的字符串
- 图像文件的 Bitmap
- 图标文件的 Icon
- 声音文件的 UnmanagedMemoryStream
其他 由设计器的“类型”列中的信息确定。

My.Resources 对象将每个资源文件公开为具有共享属性的类。 类名与资源文件的名称相同。 如上一节所述,资源文件中的资源公开为类中的属性。

示例 1

此示例将窗体的标题设置为应用程序资源文件中名为 Form1Title 的字符串资源。 要使此示例正常运行,应用程序的资源文件中必须有一个名为 Form1Title 的字符串。

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

示例 2

此示例将窗体图标设置为存储在应用程序的资源文件中的名为 Form1Icon 的图标。 要使此示例正常运行,应用程序的资源文件中必须有一个名为 Form1Icon 的图标。

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

示例 3

此示例将窗体的背景图像设置为应用程序资源文件中名为 Form1Background 的图像资源。 要使此示例正常运行,应用程序的资源文件中必须有一个名为 Form1Background 的图像资源。

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

示例 4

此示例播放以音频资源形式存储在应用程序的资源文件中的声音,该资源名为 Form1Greeting。 要使示例正常运行,应用程序的资源文件中必须有一个名为 Form1Greeting 的音频资源。 My.Computer.Audio.Play 方法仅可用于 Windows 窗体应用程序。

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

示例 5

此示例检索应用程序的字符串资源的法语区域性版本。 资源名为 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

另请参阅