Clientforms-Gewusel in VB2010

10/12/2010 - 02:13 von Frank Hammerschmidt | Report spam
Hallo zusammen,
ich habe ein VB2010-WinForms-Projekt und stelle in einem MDI-Fenster
mehrere Child-Forms dar. Blöderweise veràndert sich die Position dieser
Child-Fenster, sobald ich hineinklicke.

Zum Nachvollziehen einfach nur ein Projekt mit 'ner Form1 und 'ner Form2
anlegen und Form1 bestücken mit:

Public Class Form1
Private _f(3) As Windows.Forms.Form

Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
Me.IsMdiContainer = True
End Sub

Private Sub Form1_Shown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shown
Me.WindowState = FormWindowState.Maximized
For i As Integer = 0 To 2
_f(i) = New Form2
_f(i).MdiParent = Me
_f(i).Text = String.Format("ChildForm_{0}", i.ToString)
_f(i).Show()
_f(i).Dock = DockStyle.Left Or DockStyle.Top _
Or DockStyle.Bottom
Next
End Sub
End Class

Muss ich mich damit abfinden?

Danke,
Frank
 

Lesen sie die antworten

#1 Armin Zingler
10/12/2010 - 04:49 | Warnen spam
Am 10.12.2010 02:13, schrieb Frank Hammerschmidt:
Hallo zusammen,
ich habe ein VB2010-WinForms-Projekt und stelle in einem MDI-Fenster
mehrere Child-Forms dar. Blöderweise veràndert sich die Position dieser
Child-Fenster, sobald ich hineinklicke.

Zum Nachvollziehen einfach nur ein Projekt mit 'ner Form1 und 'ner Form2
anlegen und Form1 bestücken mit:

Public Class Form1
Private _f(3) As Windows.Forms.Form

Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
Me.IsMdiContainer = True
End Sub

Private Sub Form1_Shown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shown
Me.WindowState = FormWindowState.Maximized
For i As Integer = 0 To 2
_f(i) = New Form2
_f(i).MdiParent = Me
_f(i).Text = String.Format("ChildForm_{0}", i.ToString)
_f(i).Show()
_f(i).Dock = DockStyle.Left Or DockStyle.Top _
Or DockStyle.Bottom
Next
End Sub
End Class

Muss ich mich damit abfinden?



Man dockt keine MDI-Child-Forms. Üblicherweise werden Controls
gedockt, so dass der restliche Bereich zum MDI-Client-Bereich wird,
in dem die Child-Forms geöffnet sind.
Der von dir beobachtete Effekt kommt daher, dass die Reihenfolge beim
Andocken mehrere Controls von deren Z-Order abhàngt. Wenn
man eine Child-Form anklickt, kommt sie in den Vordergrund, und dadurch
àndert sich auch die Dock-Reihenfolge und somit die Position.

Armin

Ähnliche fragen