My.Resources 对象
提供用于访问应用程序资源的属性和类
备注
My.Resources 对象提供对应用程序资源的访问,并使您能够动态地检索应用程序的资源。 有关更多信息,请参见 管理应用程序资源。
My.Resources 对象仅公开全局资源。 它不提供对与窗体相关联的资源文件的访问。 必须从窗体中访问窗体资源。 有关更多信息,请参见 演练:本地化 Windows 窗体。
从 My.Resources 对象可以访问应用程序的区域性特定资源文件。 默认情况下,My.Resources 对象从与 UICulture 属性中的区域性匹配的资源文件中查找资源。 不过,您可以重写此行为,并指定用于资源的特定区域性。 有关更多信息,请参见 桌面应用程序中的资源。
属性
My.Resources 对象的属性提供对您的应用程序资源的只读访问。 若要添加或移除资源,请使用**“项目设计器”。 有关更多信息,请参见 如何:添加或移除资源。 使用 My.Resources.resourceName 可访问通过“项目设计器”**添加的资源。
您还可以通过以下方式添加或移除资源文件:在**“解决方案资源管理器”中选择项目,然后在“项目”菜单中单击“添加新项”或“添加现有项”**。 使用 My.Resources.resourceFileName.resourceName 可以访问以这种方式添加的资源。
每个资源都有名称、类别和值,这些资源设置确定访问资源的属性在 My.Resources 对象中的显示方式。 对于在**“项目设计器”**中添加的资源:
名称确定属性名。
资源数据是属性值。
类别确定属性的类型:
类别 |
属性数据类型 |
字符串 |
|
图像 |
|
图标 |
|
音频 |
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