2013-03-05 10 views
5

私の場合は私がpanel複数の内部forms (toplevel=false)を開封しております、パネルで一番上(z順序)コントロールを見つける

です参照してください。実行中にformspanelの中に開かれた場合、すべてdock filledbrought to frontとなります。この状況での私の必要性は、どうすればその最も高いコントロール(form)をpanelに選択することができるかということです。最上位の制御は、より大きいz-orderを有する制御(form)を意味する。

私は現在、仮定することにより、このコードを使用しています

panel.controls(0) 

すべてのボディは、上記のスニペットが正しいかドットネットで利用可能な任意の代替構文は、それを達成するかどうか、教えてもらえますか。?

答えて

5

:様 何か

制御ゼロのインデックス値は、zオーダーの最上部にあり、より高い数字は、底に近いです。

したがって、あなたの前提が正しいと思います。 Controls(0)は常に一番上のコントロールになります。唯一の懸念は、それが目に見えるかどうかであろう。

1

私は、各コントロールのルーピングの他の解決方法は見当たりません。 MSDNによれば

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 
関連する問題