[英]c# Error: Cannot implicitly convert type 'string' to 'System.Windows.Forms.Control' (CS0029)
我目前正在编写一个程序,允许用户彼此查看多个透明图像,他们能够打开或关闭6个不同的图像。
要解释它是如何工作的:
图像1始终是背景(除非将其关闭,在这种情况下,下一个“打开”图像是背景)
例如:
如果图像1为开,图像2为开,则图像2将图像1作为其父对象。
如果图像1打开,图像2关闭,图像3打开,则图像3将使用图像1作为其父级
等等
为此,我创建了一个数组-imageName [6]。 打开图像时,相应的元素(例如,图像1 = imageName [0])表示[image1]。
我希望使用这种方法来创建一个控件,该控件可以根据上述示例更改图像的“父级”。
我认为使用以下代码将起作用:
imageB.parent = imageName[0]
//这只是一个示例,所需答案将是imageB.parent = imageA //我需要使用数组中的数据来实现此答案。
但是我只收到标题中列出的错误消息:
(无法将类型'string'隐式转换为'System.Windows.Forms.Control'(CS0029))
有人可以帮我解决这个问题吗? 我怕我陷入困境。
请注意,我的代码要复杂得多,上面仅显示了其中的一小段代码,而不是显示我的代码xD的全部776行
更新:总而言之,我需要根据存储在我的数组一部分中的名称分配一个图像父对象(在本例中为[0]即[image1]
我的错误使这不可能
有没有办法解决这个问题,或者我只是编写非常糟糕的代码?
您有一个字符串,即factionLayersID[0]
,并试图将其factionLayersID[0]
为Control
变量。这就是为什么要获取该异常的原因。
您的数组元素类型应为Control
。 像这样:
Control[] factionLayers = new Control[6];
然后,您可以将元素分配给父控件:
imageB.parent = factionLayers[0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.