Childform ruft in MDIForm etwas auf

17/07/2008 - 14:18 von André | Report spam
Hallo,

da ich von einer anderen Programmiersprache her komme, wo das hier geht >>
this.MdiParent.Test();<< mal eine Verstàndnisfrage.
Ich habe eine MDIForm die ruft eine Childform auf, aus der Childform möchte
ich eine Method aus der MDIForm aufrufen.

Wieso geht das so nicht?
this.MdiParent.Test();

Muß man das immer über diesen Weg hier machen, obwohl ich über


this.MdiParent<< das frmMDIFORM Objekt erhalte?




// das hier funktioniert
MDIFORM frmMDIFORM = new MDIFORM();
frmMDIFORM.Test();

Gruß
André


namespace WindowsFormsApplication1
{
public partial class MDIFORM : Form
{
Form frmForm;

public MDIFORM()
{
InitializeComponent();

frmForm = new CHILDFORM ();
frmForm.MdiParent= this;
frmForm.Show();
}

public void Test()
{
MessageBox.Show("Test");
}
}
}


namespace WindowsFormsApplication1
{
public partial class CHILDFORM : Form
{
public CHILDFORM()
{
InitializeComponent();
}

public void btnClick( )
{
// das hier funktioniert nicht, warum nicht?
this.MdiParent.Test();


// das hier funktioniert
MDIFORM frmMDIFORM = new MDIFORM();
frmMDIFORM.Test();
}
}
}
 

Lesen sie die antworten

#1 Frank Dzaebel
17/07/2008 - 14:49 | Warnen spam
Hallo André,

Wieso geht das so nicht?
    this.MdiParent.Test();



Nimm z.B.:

((MDIFORM) this.MdiParent).Test();

C# ist typsicher und MdiParent ja nur vom
Typ Form, der keine Test-Methode hat!




          InitializeComponent();
          frmForm = new CHILDFORM ();




BTW: Da muss natürlich irgendwo noch ein
IsMdiContainer=true;
sein. Aber sicher hast Du das über
Designer eingestellt.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen