Form innerhalb eines Parent auf Topmost setzen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von FatFire.

    Form innerhalb eines Parent auf Topmost setzen

    Hallo,

    wie die Überschrift schon sagt, bekomm ich es einfach nicht hin eine Form innerhalb eines Parents ständig in den Vordergrund zu bringen. Kann mir wer sagen wie das geht?
    Me.Topmost = True funktioniert irgendwie nur, wenn ich "Me" nicht als child setze.

    Vielen Dank schonmal.
    Eine Möglichkeit ist es, die Form nicht als MDI-Child zu definieren, sondern per API-Aufruf das MDI-Parent zum normalen Parent zu machen.
    Beispiel: Du brauchst ein Projekt mit zwei Forms (MDIParent=Setzen des isMDIContainer=true und MDIChild, eine normale Form). Dann tausch den MDIParent Quelltext hiermit aus:

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. Public Class MDIParent
    3. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    4. Public Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    5. End Function
    6. Private Sub MDIParent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Dim MdiChild1 As New MDIChild
    8. MdiChild1.MdiParent = Me
    9. MdiChild1.Text = "Child 1"
    10. MdiChild1.Show()
    11. Dim MdiChild2 As New MDIChild
    12. MdiChild2.MdiParent = Me
    13. MdiChild2.Text = "Child 2"
    14. MdiChild2.Show()
    15. Dim OnTopForm As New MDIChild
    16. OnTopForm.Text = "On Top Form"
    17. ' NICHT MdiParent setzen
    18. OnTopForm.Show()
    19. ' Stattdessen Parent setzen
    20. SetParent(OnTopForm.Handle, Me.Handle)
    21. End Sub
    22. End Class


    Gruß FatFire