在面板中找到最上面的(z-order)控件



看我的例子,

我在一个panel中打开了多个forms (toplevel=false)。在运行期间,panel内部打开的所有forms都是dock filledbrought 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

相关内容

  • 没有找到相关文章

最新更新