2014-01-10 26 views
2

我有6个需要使用透明度的图像。他们可以打开和关闭。我需要设置它,以便如果图片(这是一个父级)被关闭,那么上面的图片将被分配给下一个可用的父级。将'parent'属性赋值给一个正在更改的对象(存储在控制数组中的名称)

要做到这一点,我在一个控件数组存储“下一个可用的父母形象的名字,而“前儿童”形象的家长设置为这个控件数组

(有两个控件数组既是家长和孩子可以根据按下哪个按钮)

这是代码我试图线改变为获得工作〜:

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

如果谁的父母正在改变孩子每次差异不显着我只会写

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

有没有办法让接受存储在'updatedParentFaction'数组中的什么作为我想改变的孩子的名字?

UPDATE

好了,所以我要在这里提供进一步的信息:

有六种图片框称为“图像A”,“图像B”等一路攀升到“图像F ”。

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

当程序运行时,他们都“隐藏”,并按下相应的按钮,可以将它们变得可见(如果你按下“显示imageA”,那么像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]

希望的名字这会有所帮助,一个孩子,如果没有生病显示我的代码,但我认为解释它可能会更容易。

+0

我认为如果你发布一个你想做的小代码示例,它会更清晰。例如... imageB是什么? –

+0

我现在不明白的是......为什么你必须改变父母?它们重叠并且透明... –

+0

如果所有图像都打开,那么B是A的孩子,C是B等的孩子,问题是当我将图像B设置为隐藏时,那么仅显示唯一的图像是图片A - (图片C是B的一个孩子,因此它也是隐藏的,图片D是C的孩子,因为C隐藏了D也隐藏了,等等等等) – user3178614

回答

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; 
} 

其他重载非常简单RD。

+0

这种方法似乎比我当前的脚本更高效,需要进一步研究才能成功应用,但我认为这是一个很好的答案,谢谢! – user3178614

+0

@ user3178614欢迎您,对不起,没有更多的上下文我无法提供更具体的解决方案! –

+0

再次感谢您的帮助,但我试图弄清楚现在如何设置存储在数组中的图像的父级,是否符合以下几行:图片[3] .parent =图片[2]; – user3178614

相关问题