Laden...

Panel / Usercontrol als MdiContainer?

Erstellt von Blacal vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.909 Views
B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 17 Jahren
Panel / Usercontrol als MdiContainer?

Servus

Kurze Frage: Gibt es eine möglichkeit, ein Usercontrol oder Panel zu einen MdiContainer zu machen?

Ich brauch das, weil ich in einem ActiveX Steuerelement einen Mdi Container brauche.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Blacal,

m.E. nicht, weil die MdiParent-Eigenschaft erst in der Form-Klasse eingefügt wird. Und die ist ein Bruder von UserControl und ein Neffe van Panel. 🙂 Also keine Vererbung in direkter Linie. Nach BGB würde da zwar trotzdem was mit Vererbung laufen, aber bei OOP nicht.

herbivore

B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 17 Jahren

ja gut aber wie kriege ich in ein UserContro ein MDI rein??? Ich habe gelesen das ich mir mit MDIClient einen erzeugen kann aber wie ich dem dann die Neuen Formen zuweise, weis ich nicht, da es mir wenn ich es nach dem Standart mache immer einen Fehler raushaut.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Blacal,

wenn ich es nach dem Standart mache immer einen Fehler raushaut.

Wie erstelle ich einen Beitrag?
Nachdem ich in der Suche keinen passenden Beitrag gefunden habe, erstelle ich ein Thema im passenden Forum mit einem aussagekräftigen Titel sowie einem verständlich formulierten Beitrag. Ich gebe die genaue Fehlermeldung oder den genauen Text der Exception an und poste die Codezeile, in der der Fehler aufgetreten ist.

herbivore

B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 17 Jahren

So sieht der aktuelle Code aus, der Steht in einer Klasse die von UserControl geerbt hat.


MdiClient mc = new MdiClient();
            mc.Location = new System.Drawing.Point(0, 0);
            mc.Name = "mdiContainer";
            mc.Size = new System.Drawing.Size(400, 600);
            mc.TabIndex = 0;
            mc.Visible = true;
         

            Form f = new Form();
            f.MdiParent = mc;
            f.ShowDialog();

Folgender Fehler tritt auf:

Fehler 1 Eine implizite Konvertierung vom Typ "System.Windows.Forms.MdiClient" in "System.Windows.Forms.Form" ist nicht möglich. 27 MDI-TEST

Kannst du mir da weiter helfen???
Ich hoffe das ich diesmal für dich die Frage Deutlich genug gestellt habe

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Blacal,

Ich hoffe das ich diesmal für dich die Frage Deutlich genug gestellt habe

wäre schon alleine ein Grund nicht mehr zu antworten. Schließlich willst du eine Antwort und solltest nicht unnötig Informationen zurückhalten und uns damit das Leben schwer machen. Wenn man eine Fehlermeldung bekommt, gehört es einfach dazu, diese von alleine anzugeben.

Ein MdiClient-Objekt musst und solltest du gar nicht erstellen. Sowohl der MdiContainer (=MdiParent) also auch die MdiClients sind erstmal normale, von dir erstellte Forms. Im MdiContainer musst du IsMdiContainer auf true setzen und beim Client weist du an MdiParent eben dieses MdiContainer-Form zu. Das sollte alles sein.

herbivore

B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 17 Jahren

In einer UserContorl geerbenten klasse hat man kein MDIContainer und genau das ist mein Problem. Falls ich dich jetzt falsch verstanden haben sollte bitte ich um ein Code Beispiel.

mfg Blacal

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Blacal,

ich habe ja schon geschrieben, dass ich denke, dass es mit einem UserControl nicht geht.

Aber was hindert dich, als MdiClient ein Form zu nehmen, das als einziges Control das UserControl mit DockStyle.Fill enthält?

herbivore

B
Blacal Themenstarter:in
387 Beiträge seit 2005
vor 17 Jahren

Da dieses Contorl noch in andere Fenster eingebunden werden soll, wie z.B. SAP etc

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Blacal,

naja, sieht den Realitäten ins Auge. Was du willst, geht nicht. Eine Alternative habe ich aufgezeigt.

herbivore