5

看我的情况是,

forms (toplevel=false)在一个panel. 所有forms打开的内部panel都将在运行时dock filledbrought to front我在这种情况下需要的是,我如何选择最上面的 control( form) panel。最顶部的控制意味着 control( form) 具有更大的z-order

我目前正在假设使用此代码,

 panel.controls(0)

任何人都可以告诉我,上面的代码片段是否正确或 dot net 中可用的任何替代语法来实现这一点。?

4

2 回答 2

5

根据MSDN

索引值为零的控件位于 z 顺序的顶部,数字越大越靠近底部。

因此,我会说你的假​​设是正确的。 Controls(0)将永远是最顶级的控制。唯一的问题是它是否可见。

于 2013-03-05T13:37:43.057 回答
1

我没有看到任何其他循环遍历每个 Control 的解决方案,看看最上面的是什么。就像是:

Dim TopMostControl As Control = panel.Controls(0) 'Check if there are any control
For Each Control As Control In panel.Controls
    If panel.Controls.GetChildIndex(Control) < panel.Controls.GetChildIndex(TopMostControl) Then
        TopMostControl = Control
    End If
Next
于 2013-03-05T13:26:39.510 回答