VB2008Express - Anwendung als MDI-Child

Hi zusammen,

ich arbeite derzeit an einem Softwarepaket das als MDI-Form aufgebaut ist. Allerdings möchte ich die einzelnen MDI-Childs nicht direkt mit im Projekt einbinden, sondern als separates Programm/Projekt schreiben und diese anschließend als MDI-Child in den Main-Form einbetten. Hat den Vorteil, dass ich somit einzelne Tools Updaten kann ohne das gesamte Softwarepaket aktualisieren zu müssen.
Im Internet gibt’s dazu ja ein paar Artikel drüber die soweit auch nicht schlecht sind ABER keine Auswirkungen auf meine eigenen Programme haben…

Ein Beispiel:
In den MDI-Container kann ich problemlos so was wie Notepad.exe oder Calc.exe einbetten. Sobald ich das aber mit einem eigenen Programm versuche, funktioniert das nicht mehr… Das Programm wird normal als eigenständige Anwendung gestartet und nicht in den MDI-Container geladen. Einer der Codes die ich probeweise ausprobiert habe kam von http://www.vbarchiv.net/tipps/tipp_1794-notepadexe-e….

Nun meine Frage… Gibt es eine gute Lösung für das Problem bzw. wie müsste ich das machen um meine eigenen Programme als MDI-Child einzubinden?? Mir persönlich ist es dabei aber egal ob der MDI-Container die Childs einbettet oder ob sich die Childs in den MDI-Container „reinsetzen“.

Wäre cool wenn jemand sich erbarmen würde und mir vielleicht einen Tipp geben könnte…

Danke schon mal… :smile:

Hallo,

du könntest deine MDI-Children ja zum Beispiel in jeweils einer eigenen DLL ablegen und dann in deinem Hauptprogramm diese importieren.

Nico

Hi,

danke für die fixe Antwort… :smile:

Wie erstell ich denn DLL’s in der Express-Edition???

Ich bin mir nicht sicher, ob das in der Express auch da ist. Bei mir ist es jedenfalls bei „Neues Projekt“ -> Entsprechende Sprache -> Klassenbibliothek (Class Library)

Hi,

ja… Oh man ich sollte von der Leitung runtergehn… :smile:
Klar bei mir schimpft sich das auch Klassenbib… Egal…

Ja ich kanns probieren aber ich versteh nicht wir das dann mit den MDI-Childs funktionieren soll… Die „normalen“ Forms im Projekt kann ich mittels Me.Parent (oder so ähnlich) noch als MDI-Child handhaben aber wie mach ich das dann bei den Forms in den DLL’s?? Die DLL’s sind ja „Projektunabhängig“ wodurch ich ja den Forms irgendwie sagen muss „du bist jetzt das child-form von dem mdi-container“…
Und wenn ich das den Childs eh irgendwie mitteilen muss, kann ich die ja gleich als eingenständige Anwendung schreiben…

… Ich glaub ich hab einen Denkfehler drin …

Geh das ganze doch andersrum an.
Du hast in deinen DLLs ganz normal die Formulare. Gut, die müssen ja erstmal auch nicht wissen, dass sie MDI-Formulare sind.
In deiner Hauptanwendung kannst du dann so ein Formular-Objekt erstellen und von da aus sagen, du bist jetzt ein MDI-Formular:

meineFormularKlasse meinFormular = new ...;
meinFormular.Parent = ...

Dim meinFormular As New meineFormularKlasse()
meinFormular.Parent = ...

Nico

… oh man ist das deprimierent…

Also ich hab jetzt eine Klassenbib und weil ich das ja so nicht starten kann, eine Win-Anwendung als Standarfprojekt (Zweitprojekt).
Die Klassenbib hat lediglich ein Form und noch keinen Code (sollte ja eigentlich nicht das Problem sein)
und in der Win-Anwendung versuch ich grad nun das entsprechende Form aus der Klassenbib zu laden aber ich bekomm das einfach nicht auf drei… :frowning:

Ich fürchte um meine Programmierkenntnisse… :frowning:

Hi,
ich bin mir zwar nicht sicher wie das in VB2008Express funzt, ich benutze Viusal C# 2010 Express(auch kostenlos) aber musst die DLL nicht zu den Verweisen hinzufügen und dann den namespace importieren, es sein denn der namespace ist der gleiche wie dein eigentliches Programm.
Geht folgender Maßen:
Ohne import vom namespace

Sub MDI Childreninit()
 MDIChildren.Fenster1....
End Sub

mit import vom namespace

imports MDIChildren
Sub MDI Childreninit()
 Fenster1....
End Sub

Hier noch ein Buchlink: http://openbook.galileocomputing.de/visualbasic_2008/
hilft dir evtl.
Lg Knerd

oh je… *kopfschüttel*

Ich seh schon, ich muss mich da erstmal wieder in die DLL-Programmierung einarbeiten… Hab das schon seit Gottesgedenken an nicht mehr gemacht… (hätte ja sein können das es in vb.net recht einfach ist)…

Ansonsten wie könnte ich das ohne der DLL-Variante lösen??
Ich hab nämlich tierische Bedenden das ich das als DLL nicht hinbekomme… :frowning:

Hi,
versuchs doch einfach mal, ohne einen Versuch weist du nicht ob es geht.
Lg Knerd

Ja klar versuchen werd ich das auf jedenfall… Nur ich muss mich halt erst wieder tierisch einarbeiten… :smile:

Ansonsten nur mal so interessehalber… Woran kann das liegen das ich externe Programm wie Notepad.exe und Calc.exe als MDI-Child „kidnappen“ kann aber es bei den eigenen Programmen nicht funktioniert???