Re: MainForm ansprechen

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hallo Albert,
> ich möchte aus einem modalen Dialog die Statuszeile der MainForm
verändern.
> Aus einem MDI kann ich auf das MainForm mittels ParentForm zugreifen.
> In einem modalen Dialog ist dieses Feld jedoch "Nothing".
>
> Wie kann ich dennoch die MainForm ansprechen?

Kleines Beispiel:
Form1: MDI-Form
Form2: MDI-Child
Form3: Dialogform


' /// Form1, MDI-Form
Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

Dim FMDIChild As Form2

' *** Form1 ist MDIContainer
Me.IsMdiContainer = True
Me.Text = "Form1: MDI-Form"

' *** Instanz eines MDI-Child erzeugen und anzeigen
FMDIChild = New Form2
With FMDIChild
.MdiParent = Me
.Text = "MDI-Child"
.Show()
End With
End Sub

End Class



' /// Form2, MDI-Child
Public Class Form2
Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "

Private Sub Form2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Click

' *** Instanz der Dialogform erstellen und anzeigen
Dim FDlg As New Form3
With FDlg
' *** Verweis auf eigene Forminstanz
' *** an FDlg.Owner übergeben
.Owner = Me
.Text = "DialogForm"
.ShowDialog()
End With
End Sub
End Class


' /// Form3, DialogForm
Public Class Form3
Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "

Private Sub Form3_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Click

Dim FChild As Form
Dim FMDI As Form

' *** Verweis auf eigene Ownerform holen
FChild = Me.Owner

' *** Verweis auf MDIForm holen
FMDI = FChild.MdiParent

' Text in der Titelzeile der MDI-Form ändern
FMDI.Text = "Zeit: " & Format(Now, "hh:nn:ss")
End Sub
End Class

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)

.



Relevant Pages

  • Interfaces und Vererbung
    ... End Interface ... Public Class A ... Public Sub TuWas() Implements IX.TuWas ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Events im UserControl
    ... Eventdelegate an die entsprechenden Events der C-Objekte. ... Private Sub B_Changed ... End Class A ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Events im Usercontrol
    ... Eventdelegate an die entsprechenden Events der C-Objekte. ... Private Sub B_Changed ... End Class A ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Mausklick weitergeben?
    ... Private Class MyForm ... Private mForm2Loaded As Boolean ... End Property ... Private Sub Form1_MouseDown(ByVal sender As Object, ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Dispose, Finalize
    ... Wenn Ihr sagt, das Finalize Dispose aufruft, muß ... Class MeineKlasse ... Public Sub Dispose ... ... End Class ...
    (microsoft.public.de.german.entwickler.dotnet.vb)