My.Resources 对象

提供用于访问应用程序资源的属性和类

备注

My.Resources 对象提供对应用程序资源的访问,并使您能够动态地检索应用程序的资源。 有关更多信息,请参见 管理应用程序资源

My.Resources 对象仅公开全局资源。 它不提供对与窗体相关联的资源文件的访问。 必须从窗体中访问窗体资源。 有关更多信息,请参见 演练:本地化 Windows 窗体

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

属性

My.Resources 对象的属性提供对您的应用程序资源的只读访问。 若要添加或移除资源,请使用**“项目设计器”。 有关更多信息,请参见 如何:添加或移除资源。 使用 My.Resources.resourceName 可访问通过“项目设计器”**添加的资源。

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

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

  • 名称确定属性名。

  • 资源数据是属性值。

  • 类别确定属性的类型:

类别

属性数据类型

字符串

String

图像

Bitmap

图标

Icon

音频

UnmanagedMemoryStream

UnmanagedMemoryStream 类从 Stream 类派生而来,因此可以对它使用以流为参数的方法(如 Play 方法)。

Files

其他

由设计器的“类型”一栏中的信息决定。

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 窗体

概念

桌面应用程序中的资源

其他资源

管理应用程序资源