我正在尝试将图像添加到ToolStrip。当尝试添加图像时,我收到一个错误,说"dog"不是"ToolStripEvents.My.Resources"的成员。
我已将一个新的资源文件添加到我的Visual Studio项目中,并将两个现有图像添加到资源文件中。在解决方案资源管理器中,我看到Resources文件夹中有两个图像(dog.jpg和Euclid.jpg(
在我的表单设计中,我添加了ToolStrip和一个按钮。对于按钮点击事件,我正在尝试将图像添加到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中使用它们?
当您通过Project -> Add New Item -> Resource File
将资源文件添加到项目中时,您必须使用分配给该新资源文件的名称,该名称也分配给在相应的[Resource].Designer.xx
文件中创建的internal
(Friend
(类对象
这些资源文件通常在项目文件夹结构的根目录中创建(除非另有指定(。
假设新的Resource文件已命名为ResourcesExtra
:您将其资源对象访问为ResourcesExtra.SomeResourceName
(此处为ResourcesExtra.dog
(
相反,OP尝试使用My.Resources
来访问资源映像My.Resources
指向与项目关联的默认资源文件,该文件存储在VB.Net项目中的My Project
文件夹或C#项目中的Properties
文件夹中
当然,此资源文件不包含对存储在另一个资源文件中的图像位置的引用,因此是例外。
添加到资源文件的图像存储在项目的Resources
文件夹(VB.Net和C#项目(中。不同位置的其他类型的资源(例如,在文件的情况下为ObjDebug
(
在这种特定情况下,显然实际上并不需要额外的资源文件,因此将图像移动到项目的资源中可能是一个不错的选择(也可以删除额外的资源(
但是,对于不同的目的地使用不同的资源文件可能是个好主意
此外,您可以扩展概念并将资源移动到附属程序集(库项目(,用作项目中所有资源的存储,添加静态(共享(方法来检索这些对象,类似于ResourceManager的操作,但采用自定义(专用(方式
资源可以按名称、索引等进行检索,并根据需要进行组织,例如处理多种语言。