Diese Fuktion ermöglicht eine Form aus eigene ClassLibrary DLL aufzurufen.
Einfach den Pfad der DLL angeben und Name der Form die im DLL ist angeben.
Folgende Importe werden benötigt:
Imports System.Reflection
Imports System.IO
Aufruf Beispiel:
Form1 aus ClassLibrary1.dll aufrufen
CallDLLForm(Application.StartupPath & "\ClassLibrary1.dll", "Form1")
Form1 aus ClassLibrary2.dll aufrufen
CallDLLForm(Application.StartupPath & "\ClassLibrary2.dll", "Form1")
------------------------------------------------------------------------------------------------
2 Formen aus einer ClassLibrary1.dll aufrufen
Form1 aus ClassLibrary1.dll aufrufen
CallDLLForm("C:\ClassLibrary1.dll", "Form1")
Form2 aus ClassLibrary1.dll aufrufen
CallDLLForm("C:\ClassLibrary1.dll", "Form2")
''' <summary>Ruft eine Form1 auf in einer DLL</summary>
''' <param name="DLLpath">Pfad zur DLL (Beispiel: C:\TEST.dll)</param>
''' <param name="FormName">Form Name in DLL (Beispiel: Form1 oder frmMain)</param>
Public Sub CallDLLForm(ByVal DLLpath As String, ByVal FormName As String)
Dim DLLFilenameEx As String = Path.GetFileName(DLLpath)
Dim Filename As String = Path.GetFileNameWithoutExtension(DLLpath)
Try
Dim A As [Assembly] = [Assembly].LoadFrom(DLLpath)
Dim B As [Module] = A.GetModule(DLLFilenameEx)
Dim C As Type = B.GetType(Filename & "." & FormName)
Dim D As Form = DirectCast(Activator.CreateInstance(C), Form)
D.ShowDialog()
Catch ex As Exception
MessageBox.Show(ex.Message.ToString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Abgelegt unter
Class,
Library,
DLL,
Form,
Forms,
aufrufen,
funktion,
Klasse,
Classe,
Sub,
Subs,
SubMain,
Assembly,
Routine,
Routinen,
Prozedur,
Prozeduren.
2 Kommentare zum Snippet