获得最重要的控制权

时间:2012-02-16 13:40:03

标签: c# winforms

我这里有一个旧系统,它将用户控件加载到一种面板中,然后当用户点击菜单项时,他们找到控件,然后他们调用控件上的BringToFront方法,它是面板中可见的用户控件。

我需要知道如何在面板中获取当前的Front控件?

亲切的问候

2 个答案:

答案 0 :(得分:5)

我认为您正在寻找GetChildIndex,这将为您提供控件的z-oder的值。因此,您可以在当前表单控件集合中为每个子控件测试此值,然后:

  

索引值为零的控件位于z顺序的顶部,较高的数字更接近底部。

类似的东西:

foreach (Control x in parent.Controls)
{
    if(parent.Controls.GetChildIndex(x) == 0)
    {
        //x is the front most control
    }
}

答案 1 :(得分:0)

正如Joe White在评论中提到的,BringToFront更改了容器的Controls集合中元素的顺序。所以,如果你这样做

container.Controls[0]

它将为您提供ControlCollection中最顶层的控件。