Erweiterung der Form-Klasse

Va7e

Mitglied
Hi,

ich habe ein kleines Programm mit einem MDI-Container geschrieben (C#), welches viele weiterer Forms enthält. Ich würde gerne wissen, ob man die System.Windows.Forms so erweitern kann, dass alle weiteren MdiChildrens auf eine bestimmte Methode zugreifen können (Form_Exit).

Mein Ziel ist es, dass die Forms beim Schließen komplett freigegeben werden (Dispose()). Ist so etwas realisierbar?

Ich habe es mit einer selbstgeschrieben "xForm" versucht, welche die System.Windows.Forms erbt und dort um paar Funktionen erweitert, allerdings kann ich bei allen anderen Forms die Vererbung auf "xForm" nicht ändern, weil es ständig Probleme gibt.

Ich hoffe, ihr könnt euch ungefähr vorstellen, was ich vor habe :)

MfG

Va7e
 

Shakie

Erfahrenes Mitglied
Du hast die Forms mit dem Visual Studio Designer erstellt, richtig? Wenn ja, dann musst den Klassentyp an zwei Stellen ändern, nämlich in der DeineFormXY.cs-Datei sowie auch in der DeineFormXY.Designer.cs-Datei

Davon abgesehen rät Microsoft aber von der Verwendung von MDI generell ab, da Benutzer wohl Schwierigkeiten damit haben:
Many new and intermediate users find it difficult to learn to use MDI applications. Therefore, you should consider other models for your user interface. However, you can use MDI for applications which do not easily fit into an existing model.
Zitatquelle: http://msdn.microsoft.com/en-us/library/ms632591
 
Zuletzt bearbeitet:

Va7e

Mitglied
Ich muss leider MDI benutzen :( Habe es so nicht hinbekommen, weil der Designer ständig abstürzt, musste in jedes Formular reingehen und die Dispose()-Methode beim Schließen aufrufbar gemacht.
 

Shakie

Erfahrenes Mitglied
[...], musste in jedes Formular reingehen und die Dispose()-Methode beim Schließen aufrufbar gemacht.
Was meinst du damit? Eigentlich sollte es möglich sein, dass deine Klasse von Windows.Forms erbt.
Wenn es dir hilft, dann würde ich ein kleines Projekt erstellen und hier hochladen, als "proof of principle".