MDI und Childs drucken

20/11/2008 - 14:48 von Tom | Report spam
Hallo zusammen,

brauche mal einen guten Tipp oder Code Example für folgendes Problem:
Ich habe ein MDI-Fenster mit diversen MDI Child Fenstern. Jetzt möchte
ich aus dem Menü des MDI Fensters den Inhalt des geraden aktiven MDI
Childs drucken.
Mal den kompletten Fensterinhalt und das andere mal nur den Inhalt
eines Datagrids.
Dachte ich benutze mal diese Routine und implementiere in jedes Child
eine DoPrintForm Routine mit
public void DoPrintForm()
{
..
}

... und im MDI Hauptfenster
private void druckenToolStripMenuItem_Click(object sender,
EventArgs e)
{
Form pChildForm = (Form)this.ActiveMdiChild;

if (pChildForm != null)
{
//access a method which will do the printing
pChildForm.DoPrintForm();
}
}
Hier bekomme ich jedoch den Fehler "System.Windows.Forms.Form' does
not contain a definition for 'DoPrintForm'"
Hat jemand eine Lösung oder eine bessere Routine mit der ich das
problem lösen kann?

Das wàre nett.

Merci

Tom
 

Lesen sie die antworten

#1 Norbert Ruessmann
20/11/2008 - 15:37 | Warnen spam
Hallo Tom,
Form pChildForm = (Form)this.ActiveMdiChild;

ChildForm ist vom Typ Form und hat diese Methode wirklich nicht.

Deine Form ist aber von Form abgeleitet, heisst evtl Form2. Ändere den Code
wie folgt

Form2 pChildForm = (Form2)this.ActiveMdiChild; // ACHTUNG:
falls die form nicht vom Typ Form2 ist, wird eine Exception geworfen
// Form2 pChildForm = this.ActiveMdiChild as
Form2; // liefert null falls form nicht vom Typ Form2
if (pChildForm != null)
{
//access a method which will do the printing
pChildForm.DoPrintForm();
}

Norbert Ruessmann
http://www.devtracer.com


"Tom" schrieb im Newsbeitrag
news:
Hallo zusammen,

brauche mal einen guten Tipp oder Code Example für folgendes Problem:
Ich habe ein MDI-Fenster mit diversen MDI Child Fenstern. Jetzt möchte
ich aus dem Menü des MDI Fensters den Inhalt des geraden aktiven MDI
Childs drucken.
Mal den kompletten Fensterinhalt und das andere mal nur den Inhalt
eines Datagrids.
Dachte ich benutze mal diese Routine und implementiere in jedes Child
eine DoPrintForm Routine mit
public void DoPrintForm()
{
..
}

... und im MDI Hauptfenster
private void druckenToolStripMenuItem_Click(object sender,
EventArgs e)
{
Form pChildForm = (Form)this.ActiveMdiChild;

if (pChildForm != null)
{
//access a method which will do the printing
pChildForm.DoPrintForm();
}
}
Hier bekomme ich jedoch den Fehler "System.Windows.Forms.Form' does
not contain a definition for 'DoPrintForm'"
Hat jemand eine Lösung oder eine bessere Routine mit der ich das
problem lösen kann?

Das wàre nett.

Merci

Tom

Ähnliche fragen