5

私の場合は、

forms (toplevel=false)内で複数開いていpanelます。実行時に開かれるすべてのforms内部。この状況での私の必要性は、その上で一番上のコントロール()をどのように選択できるかです。最上部のコントロールは、より大きな を持つ control( ) を意味します。paneldock filledbrought to frontformpanelformz-order

私は現在、このコードを仮定で使用していますが、

 panel.controls(0)

上記のスニペットが正しいかどうか、またはそれを達成するためにドットネットで使用できる代替構文があるかどうか、誰か教えてもらえますか?

4

2 に答える 2

5

MSDNによると:

インデックス値が 0 のコントロールは z オーダーの一番上にあり、数字が大きいほど下に近くなります。

したがって、あなたの推測は正しかったと言えます。 Controls(0)常に最上位のコントロールになります。唯一の懸念は、それが表示されるかどうかです。

于 2013-03-05T13:37:43.057 に答える
1

各コントロールをループして、一番上のものを確認する他の解決策はありません。何かのようなもの:

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 に答える