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:
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:
Und übrigens, wo bleibt die leichte Positionierung der Forms von VB6, wo ich nur das angeben musste:
form1.top=1000
form1.left=1000
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