gpt4 book ai didi

c# - 将 'parent' 属性分配给一个变化的对象(名称存储在控件数组中)

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:36 25 4
gpt4 key购买 nike

我有 6 张图片需要使用透明度。它们可以打开和关闭。我需要对其进行设置,以便在关闭图片(父图片)时将上面的图片分配给下一个可用的父图片。

为此,我将“下一个可用的父级”图像名称存储在一个控件数组中,并将“前一个子级”图像的父级设置为该控件数组

(有两个控件数组,因为父项和子项都可以根据按下的按钮而改变)

这是我试图开始工作的代码行~:

updatedParentFaction[0].parent = parentFaction[0];

如果每次更改 parent 的 child 都没有不同,我会写

imageB.parent = parentFaction[0];   //for example

有没有办法让它接受存储在“updatedParentFaction”数组中的内容作为我希望更改的 child 的名字?

更新

好的,我将在此处提供更多信息:

有六个图片框,分别称为“图像 A”、“图像 B”等,一直到“图像 F”。

它们的大小和位置都相同(一个在另一个之上 - 使用透明度将它们显示在彼此之上)。

当程序运行时,它们都是“隐藏”的,并且通过按下相应的按钮可以使它们可见(如果您按下“显示图像 A”,则图像 A 可见 - 再次按下按钮会使图像隐藏)

父图像将始终是打开的第一个按字母顺序排列的图像,之后的每个图像都将是该父图像的后续子图像,但按顺序排列。

例子:如果图像 A + 图像 B + 图像 D 可见,而 C、E + F 隐藏。那么主父图像将是 A(图像 B 将是 A 的子图像,图像 D 将是图像 B 的子图像)

第一次运行程序时使用此方法,并且图像在透明作品中打开。但是,(使用上面的示例)如果我要隐藏图像 B,那么图像 D 也会被隐藏。

我正在尝试编写我的代码,以便在关闭父图像时,子图像会将其父图像更改为下一个可用的父图像;在上面的示例中,如果关闭图像 B,则图像 D 会将其父级更改为图像 A。

使用代码行:

updatedParentFaction[0].parent = parentFaction[0];

需要更改父级的“子”图像的名称存储在“updatedParentFaction[0]”中,我需要分配的父派系存储在“parentFaction[0]”中

所以使用上面的示例,打开图像 A、B + D。图片 B = 图片 A 的子图片,图片 D = 图片 B 的子图片。

然后图像 B 被关闭,图像 D 现在需要成为图像 A 的子级。

我尝试使用我刚刚解释的那段代码,但代码显示为“将此数组的父级设置为 parentFaction[0]”

我需要代码来读取'将控件与存储在 updatedParentFaction[0] 中的名称设置为存储在 parentFaction[0] 中的名称的子项

希望这有助于显示我的代码,但我认为解释它可能会更容易。

最佳答案

给一个PictureBox数组图片,你可以使用这些函数来改变可见性。

这将为具有给定索引的项目及其所有子项设置可见性:

void SetVisible(PictureBox[] pictures, int index, bool visible) {
for (int i=index; i < pictures.Length; ++i)
pictures[i].Visible = visible;
}

同上但使用对象引用而不是索引:

void SetVisible(PictureBox[] pictures, PictureBox item, bool visible) {
SetVisible(pictures, Array.IndexOf(item), visible);
}

查找具有给定索引的项的第一个可见祖先:

int FindFirstVisibleAncestorIndex(PictureBox[] pictures, int index) {
for (int i=index; i >= 0; i--) {
if (pictures[i].Visible)
return i;
}

return -1;
}

其他重载非常简单。

关于c# - 将 'parent' 属性分配给一个变化的对象(名称存储在控件数组中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com