向窗体设计器c#WinForms添加资源
我的向窗体设计器c#WinForms添加资源,c#,winforms,resources,C#,Winforms,Resources,我的初始化组件方法: ResourceManager rm=Resources.ResourceManager; ... this.tsbAdd.Image=(位图)rm.GetObject(“添加”); 程序作为一个整体工作完美无瑕,但我现在无法打开designer。这很奇怪,因为我很确定它以前是有效的。不管怎样,这就是我现在遇到的错误: The variable 'rm' is either undeclared or was never assigned. 这是错误的,因为它是明确声
初始化组件方法:
ResourceManager rm=Resources.ResourceManager;
...
this.tsbAdd.Image=(位图)rm.GetObject(“添加”);
程序作为一个整体工作完美无瑕,但我现在无法打开designer。这很奇怪,因为我很确定它以前是有效的。不管怎样,这就是我现在遇到的错误:
The variable 'rm' is either undeclared or was never assigned.
这是错误的,因为它是明确声明的,并且已经被多次使用。
每次我想打开designer时,我都可以对它进行注释,但这很烦人,因为编译器会在该方法中快速删除注释 一个可能的快速修复方法是清洁然后重建解决方案
在Visual Studio中的Build
选项卡下,或右键单击解决方案浏览器中显示的解决方案
清洁溶液
重建解决方案
重新启动Visual Studio
如果这不起作用,请确保将调用InitializeComponent
作为类构造函数中的第一行。对堆栈跟踪的检查显示,Visual Studio Designer在设计模式下显示表单时逐行解析此Designer.cs文件,而不是执行它
这将解决您的问题,但正如您所知,您不应该在设计器中放置任何内容,并且只要您在设计模式下对窗体进行了最轻微的更改,或者使用编辑器更改窗体上任何控件的任何属性,您的这一行就会消失
//ResourceManager rm = Resources.ResourceManager;
//...
this.tsbAdd.Image = (Bitmap)Resources.ResourceManager.GetObject("add");
在表单的构造函数中添加相同的代码也会起作用
我建议在InitializeComponent()调用之后,将代码移动到表单构造函数中
您使用的是什么版本的Visual Studio?你的组件是用x64编译的吗?我大概一个月没更新了。而且不确定它是用x64编译的。应该是的,我应该使用VS x64。这个代码是form.designer.cs吗?@OguzOzgul是的。没有任何更改InitializeComponent
是第一个。好的,这一个有效。老实说,我更喜欢将表单设置保存在Designer.cs中,但因为它不允许我使用表单设置,所以我不得不使用它。感谢您的帮助。如果您使用编辑器和属性窗口设置控件的图像,您实际上可以。然后,它将被放入designer.cs中,并且不会被删除。我以为你因为某种原因不能这么做。这只是一个解决办法。
ResourceManager rm = Resources.ResourceManager;
public Form1()
{
InitializeComponent();
this.tsbAdd.Image = (Bitmap)rm.GetObject("add");
}