提供了用于访问应用资源的属性和类。
注解
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