My.Resources 对象

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

注解

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

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

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

属性

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

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

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

  • 该名称确定属性的名称,

  • 资源数据是属性的值,

  • 类别确定属性的类型:

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

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

课程

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

另请参阅