看我的例子,
我在一个panel
中打开了多个forms (toplevel=false)
。在运行期间,panel
内部打开的所有forms
都是dock filled
和brought to front
。在这种情况下,我的需要是,我如何在panel
上选择最上面的控件(form
)。
form
)的z-order
更大。我目前使用这个代码的假设,
panel.controls(0)
可以有人告诉我,是否上述片段是正确的或任何替代的语法可用的。net来实现这一点。
根据MSDN:
索引值为0的控件位于z顺序的顶部,数值越高越靠近底部。
因此,我认为你的假设是正确的。Controls(0)
将永远是最上面的控件。唯一关心的是它是否可见。
我没有看到任何其他的解决方案来循环遍历每个控件,看看最上面的是什么。比如:
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