我正在尝试将图像添加到ToolStrip。尝试添加图像时,出现错误,提示“dog”不是“ToolStripEvents.My. Resources”的成员。
我已将新的资源文件添加到Visual Studio项目中,并将两个现有图像添加到资源文件中。在解决方案资源管理器中,我看到Resources文件夹中有两个图像(dog.jpg和Euclid.jpg)。
在窗体的设计中,我添加了ToolStrip和一个Button。对于Button click事件,我尝试向ToolStrip添加一个图像:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim atoolstripitem As ToolStripItem
atoolstripitem = myToolStrip.Items.Add(My.Resources.dog)
End Sub
End Class
我是否正确添加了图像资源?如果没有,如何正确添加它们以便在ToolStrip中使用它们?
1条答案
按热度按时间ef1yzkbh1#
当您通过
Project -> Add New Item -> Resource File
将资源文件添加到项目中时,您必须使用已分配给此新资源文件的名称,该名称也被分配给在相应的[Resource].Designer.xx
文件中创建的internal
(Friend
)类对象。这些资源文件通常创建在项目文件夹结构的根目录中(除非另有指定)。
假设新的资源档已命名为
ResourcesExtra
:您以ResourcesExtra.SomeResourceName
(此处为ResourcesExtra.dog
)访问其资源对象OP尝试使用
My.Resources
访问资源映像。My.Resources
指向与项目相关联的默认资源文件,该文件存储在VB.Net项目的My Project
文件夹中或C#项目的Properties
文件夹中。当然,这个资源文件不包含对存储在另一个资源文件中的图像位置的引用,因此出现了异常。
添加到资源文件中的图像存储在项目的
Resources
文件夹中(VB.Net和C#项目)。其他类型的资源存储在不同的位置(例如,文件的\Obj\Debug
)在这种特定情况下,显然实际上不需要额外的资源文件,因此将图像移动到项目的资源中可能是一个不错的选择(同时删除额外的资源文件)。
但是,对不同的 * 目标 * 使用不同的资源文件可能是一个好主意。
同样,您可以扩展这个概念,将资源移动到一个附属程序集(一个库项目)中,用作项目中所有资源的存储,添加静态(共享)方法来检索这些对象,类似于ResourceManager所做的,但是是以一种自定义(专用)的方式。
资源可以通过名称、索引等来检索,并根据需要来组织,例如,以处理多种语言。