Feedback

VB - Eigene Form aus ClassLibrary DLL Aufrufen

Veröffentlicht von am 19.08.2011
(1 Bewertungen)
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")
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

    ''' <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

2 Kommentare zum Snippet

Fawk_18 schrieb am 16.02.2012:
Warum so umständlich?
1. Referenz auf die Assembly wo die Form ist.
2. In deinem Code bei den Usings einfach "using NamespaceDeinerAssembly;"
3. In der gewünschten stelle "FormName frm = new FormName();" und anschließend frm.ShowDialog() oder ".Show();

Lg Fawk_18
Florian Wartner schrieb am 18.02.2013:
Dachte ich mir auch so.. ^^
 

Logge dich ein, um hier zu kommentieren!