【发布时间】:2009-12-29 08:56:22
【问题描述】:
我有一个简单的 Windows 窗体应用程序,其中我有一个从 PictureBox 派生的名为“MyControl”的用户控件。
在这个 MyControl 中,我有以下代码:
Sub New()
MyBase.New()
Me.BackgroundImage = My.Resources.MyImage 'This is a project resource image
End Sub
现在,当我将此 MyControl 拖放到表单中时,我会得到图像以及这些东西。但问题是 BackgroundImage 正在被复制到 Form 的本地 .resx 文件中。 因此,当我查看 form.designer 文件时,我发现以下内容:
Me.MyControl1.BackgroundImage = CType(resources.GetObject("MyControl1.BackgroundImage"), System.Drawing.Image)
这是一个问题,当我尝试更改控件中的图像时,它不会反映在表单的控件实例中。所以这很痛苦。
如何解决?猜猜这将是反复试验的研究,但请帮忙。
【问题讨论】:
-
我遇到了同样的问题,不幸的是我还没有找到解决这个问题的方法(只是手动更正所有内容)。
-
我认为我对此有所了解。我添加了一个用户控件,并在其中添加了一个 PictureBox。现在为 UserControl 中的 PictureBox 提供了一个图像。当将此 UC 拖放到表单上时,PictureBox 的图像不会复制到表单的本地资源中。想知道为什么!
-
您能否也将您的图像设置为您控件中的嵌入资源?最后,将背景图片留给用户选择是否可行?
-
@serhio,即使我嵌入控件,它也会被复制。但是@nobugz 给出了一个很好的解决方案。看看吧。
标签: .net vb.net winforms user-controls