Hallo,
- windows forms application aangemaakt
- 2 library projecten toegevoegd
- output verandert van alle projecten naar "..\Output\Debug\" (project properties, tabblad compile)
- verwijzing (reference) gemaakt vanuit de windows application naar classlibrary1 (niet naar classlibrary2)
- form toegevoegd in classlibrary1 en form toegevoegd in classlibrary2
- in de windows forms application de "IsMdiContainer" property op true gezet
- een menu op de mdi form gesleept, daarin 2 submenu keuzes, library1 en library2
Visual Basic Code:
Private Sub Library1ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles Library1ToolStripMenuItem.Click
Dim f As New ClassLibrary1.Form1
f.MdiParent = Me
f.Show()
End Sub
Private Sub Library2ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles Library2ToolStripMenuItem.Click
Dim objectHandle As System.Runtime.Remoting.ObjectHandle
objectHandle = Activator.CreateInstanceFrom("ClassLibrary2.dll", "ClassLibrary2.Form1")
Dim f As Form = DirectCast(objectHandle.Unwrap(), Form)
f.MdiParent = Me
f.Show()
End Sub
De form in library2 is dynamisch geladen, maar ik denk niet dat je dat bedoelt...
Vanuit je childform kan je altijd aan de MainForm via de MdiParent property. Wil je meer kunnen uitwisselen tussen de MdiContainer en MdiChild kan je best een interface gebruiken...
En om je formulier te bouwen, eventueel aan de hand van parameters, kan je een factory method schrijven zoals chrissie zegt. Zelfs in een dll(library).
Groetjes
Stappen, keuzes en herhaling combineren is programmeren.
Explicit, Strict and don't Infer