[VB2005]Position der MDIForms bestimmen

DerStauner

Erfahrenes Mitglied
Hallo!

Es geht um folgendes: ich habe eine MDI-Anwendung, und möchte, dass jedesmal, wenn eine Form angezeigt wird, dann soll sie die Startposition (0,0) haben, wenn keine andere Childforms angezeigt sind. Und wenn die angezeigte Form schon die zweite ist, dann wird sie Cascade angezeigt. Um das umzusetzen, habe ich folgenden Code geschrieben:

Code:
Public Sub IfAnyOpen(ByVal form As Form)
        Dim anyopen As Boolean
        Dim count As Integer
        anyopen = False
        For count = 0 To biblio.MdiChildren.Length - 1
            If biblio.MdiChildren(count).Visible = True Then
                anyopen = True
                Exit Sub
            End If
        Next
        If anyopen = False Then
            form.StartPosition = FormStartPosition.Manual
            form.Left = 0
            form.Top = 0
        End If
    End Sub

Aber es funktioniert irgendwie komisch. Manchmal ist es richtig, manchmal nicht. Wobei ganz interessant ist z. B., dass wenn die StartPosition nicht auf Manual gestellt ist, dann kann ich alles zu Location angeben, die Form wird nicht dementsprechend angezeigt.
Und ich verstehe auch nicht, warum das hier nicht korrekt ist:

Code:
form.location.x=0

Und übrigens, wo bleibt die leichte Positionierung der Forms von VB6, wo ich nur das angeben musste:

form1.top=1000
form1.left=1000
 

Neue Beiträge

Zurück