0

重なり合うパネルを互いに前後に移動する方法を試してみましたが、成功しませんでした。次のコードは機能すると思いましたが、目に見える効果はありませんでした。

    Private Sub Panel2_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel2.Click
    Me.BringToFront()
End Sub

また試した

    Private Sub Panel3_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel3.Click
    Me.Activate()
End Sub

    Private Sub Panel3_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel3.Click
    Me.TopMost = True
End Sub

も失敗?

4

1 に答える 1

0

Meあなたの実際の文脈では、フォームを指していると思います。os を使用する代わりにMe、コードを変更したい特定のパネルに変更してみてください。

Panel1.BringToFront()

sender必要に応じて、イベントの変数を使用してパネルを取得することもできます。

Private Sub Panel3_click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Panel1.Click, Panel2.Click, Panel3.Click
    Dim auxPanel As Panel = CType(sender, Panel)
    auxPanel.BringToFront()
End Sub

ちなみに、コントロールを重ねて並べ替える正しい方法は.BringToFront().SendToBack()です。.TopMost.Activate用途が異なります。それぞれの機能については、MSDN ドキュメントを参照してください。

于 2013-09-03T08:50:02.317 に答える