Form1资源与项目资源的区别

3
我一直在学习资源。在VS中创建项目时:
-有一个名为Form1的窗体和一个Form1.resx -在属性下面有一个名为Resources.resx 我不知道该使用哪个。显然,我不能使用Form1.resx。当我尝试在那里添加一些内容时,会收到警告,可能会破坏项目。此外,我也无法访问它。 如果我使用属性下的Resources.resx,我可以轻松地使用Properties.Resources.(filename)访问其中的文件。 这两者之间的区别是什么?Form1.resx有什么用处? 谢谢
3个回答

1

Form1.resx 用于表单,定义了它所拥有的控件。您也不应尝试手动编辑此文件,因为当您使用 VS 设计器更改 UI 时,它会被重新生成。

Resources.resx 用于整个项目的全局(公共)资源。通常用于共享内容!


哦,那么Form1.resx是由设计师生成的,对吧? - FlyBoy

0

Form1.resx适用于直接嵌入图形对象到您的Form1代码文件中。这样,将该表单剪切并粘贴到其他项目中就变得容易了。此外,如果您创建另一个名为Form2的Form1副本,则可以对任何一个进行更改而不必担心这些更改会影响其他表单。Resources.resx则以完全相反的方式工作。如果您更改Resources.resx中的资源,则使用该资源的所有类都将被更新。例如,如果您有一个文件路径资源并更改了路径,则引用该资源的所有类都将获得更新后的路径。


0

在使用Visual Studio时,玩弄resx文件时一定要非常小心!!!

当您尝试更改/添加/编辑/删除表单级别的资源时,您很可能很快就会使项目崩溃。

最好使用项目级别的资源文件。

有几种类型的资源,例如字符串,图像,音频,图标,文件等。

项目级别的资源对于共享资源(主要是图形)非常有用,可用于所有表单:

您可以从项目菜单/ myProject的属性/资源/添加现有文件菜单项导入图形。

请注意,一旦您添加了资源并在项目中使用了该资源,您就不应将其从资源文件中删除,除非您确定不再使用它,否则资源将被删除,但没有相应的引用,您将得到编译时错误,或者更糟糕的是运行时错误。

同样地,imageList控件嵌入表单级别的图形。 但是这些图形不能在表单之间共享,因此如果您认为您将重新使用图形,则最好将其作为全局资源添加到应用程序 - 项目级别。

此外,imagelist非常难以维护和演变。

复制现有表单到新表单,无论是在同一项目中还是在另一个项目中,都不要复制/粘贴formxxx.vb文件。同样地,也不要将resx文件从一个项目复制/粘贴到另一个项目。

以下是您应该使用的相当繁琐的过程:

1-复制表单到同一项目:

前提是没有自定义表单级资源(由您添加):创建一个新的空表单,并使其与原始表单具有相同的大小和其他属性。是的,手动操作。

从原始表单的设计类型Ctrl+A选择所有控件,并将它们复制到新表单中。

它们将保留名称和属性。

对于代码也是如此:复制/粘贴。注意删除导入后的第一行:Public Class myOriginalForm

2-复制表单到另一个项目,您应该首先确保所有项目级别的资源都是相同的。而不是通过从资源文件夹复制单个资源!

相反,使用“添加现有资源”菜单项仔细导入新项目中的资源。您可以同时导入多个项目。

这样,您的资源将被正确引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接