(Unterschied zwischen Versionen)
				
		
		
		
		
		
		
		
		|   |  | 
		| Zeile 114: | Zeile 114: | 
|  | End Sub |  | End Sub | 
|  | </source> |  | </source> | 
|  | + |  | 
|  | + | [[Datei:DotNetLib_DotNetControlContainer_VBNetUserControl.png]] | 
Version vom 19:00, 15. Jul. 2014
 Installation
 MSI Paket
-  Laden Sie sich die aktuellste Version des DotNetControlContainers als MSI Setup-Paket herunter und installieren Sie es im System (Administrator-Berechtigung erforderlich).
 Batch Scripts
-  Verwenden Sie aus den Installationsdateien das Script RegisterTLBs.cmd um den DotNetControlContainers im System zu registrieren (Administrator-Berechtigung erforderlich).
 Verwendung
 Minimalbeispiel
-  Installieren Sie den DotNetControlContainer im System
-  Erstellen Sie eine leere Access Testdatenbank (mdb oder accdb)
-  Importieren Sie die Klasse NetComDomain aus der Access CodeLib
-  Wenn Sie für den Import nicht den Import Assistenten der Access CodeLib verwenden, müssen Sie händisch einen Verweis auf C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb sowie einen Verweis auf C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscoree.tlb hinzufügen.
 
-  Erstellen Sie ein neues, leeres Formular und öffnen Sie es im Entwurfsmodus
-  Wählen Sie im Menü die Option ActiveX Steuerelemente und fügen Sie ein neues ACLibControlConatiner.ControlContainer Objekt ein
-  Prüfen Sie dass der Name des Controls im Formular ControlContainer0 lautet
-  Wenn Sie Access ab Version 2007 (oder Neuer) verwenden setzen Sie in den Objekteigenschaften des Elements ControlContainer0 die Eigenschaft Horizontaler Anker sowie die Eigenschaft Vertikaler Anker auf Beide.
-  Fügen Sie in das Formular einen Button Befehl1 ein.
-  Fügen Sie dem Formular folgenden Code hinzu
Option Compare Database
Option Explicit
 
Private WinForm As Object
 
Private Sub Befehl1_Click()
 
    Dim DllPath As String
        DllPath = "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"
 
    With New NetComDomain
        Set WinForm = .CreateObject("Form", "System.Windows.Forms", DllPath)
            WinForm.Text = "Das ist ein .NET Winform"
            WinForm.StartPosition = 1
            WinForm.ShowIcon = False
            WinForm.TopLevel = False
    End With
 
    Me.ControlContainer0.Object.LoadControl WinForm
 
    WinForm.Show
 
End Sub 
 VB.NET UserControl
-  Erstellen Sie mit Visual Studio ein neues Klassenbibliotheks-Projekt
-  Sprache: VB.Net
-  .NET Framework Version 3.5
-  Projekt-Typ: Klassenbibliothek
-  Projekt-Name: ClassLibrary1
 
-  Löschen Sie die automatisch generierte Klasse Class1.vb
-  Fügen Sie über die Funktion Neues Element hinzufügen ein neues Benutzersteuerelement ein und übernehmen Sie die vorgeschlagene Bezeichnung UserControl1.vb
-  Fügen Sie auf dem UserControl1 einen Button Button1 ein
-  Wechseln Sie in die Quellcode-Bearbeitung (z.B. Taste [F7]) und übernehmen Sie den folgenden Code für das Control:
Public Class UserControl1
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        MsgBox("Hello World")
    End Sub
 
    Public Function SayHello() As String
        SayHello = "Hallo, ich bin eine Public Function!"
    End Function
 
End Class-  Wechseln Sie in die Eigenschaften des Projekts ClassLibrary1, in der Reiterkarte Anwendung klicken Sie auf den Button [Assemblyinformationen] und aktivieren im sich öffnenden Fenster die Option Assembly COM-sichtbar machen
-  Erstellen sie das Projekt, kopieren Sie die Datei ClassLibrary1.dll aus dem Debug-Verzeichnis an einen belieben Ort
-  Die folgenden Erläuterungen gehen davon aus, dass sich die Access-Datenbank sowie die Datei ClassLibrary1.dll im selben Verzeichnis befinden.
-  Installieren Sie den DotNetControlContainer im System 
-  Erstellen Sie eine leere Access Testdatenbank (mdb oder accdb) 
-  Importieren Sie die Klasse NetComDomain aus der Access CodeLib 
-  Wenn Sie für den Import nicht den Import Assistenten der Access CodeLib verwenden, müssen Sie händisch einen Verweis auf C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb sowie einen Verweis auf C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscoree.tlb hinzufügen. 
 
-  Erstellen Sie ein neues, leeres Formular und öffnen Sie es im Entwurfsmodus 
-  Wählen Sie im Menü die Option ActiveX Steuerelemente und fügen Sie ein neues ACLibControlConatiner.ControlContainer Objekt ein 
-  Prüfen Sie dass der Name des Controls im Formular ControlContainer0 lautet 
-  Wenn Sie Access ab Version 2007 (oder Neuer) verwenden setzen Sie in den Objekteigenschaften des Elements ControlContainer0 die Eigenschaft Horizontaler Anker sowie die Eigenschaft Vertikaler Anker auf Beide. 
-  Fügen Sie in das Formular einen Button Befehl1 ein. 
-  Fügen Sie dem Formular folgenden Code hinzu 
Option Compare Database
Option Explicit
 
Private Sub Befehl1_Click()
 
    Dim DllPath As String
        DllPath = Application.CodeProject.Path & "\" & "ClassLibrary1.dll"
 
    Dim lib As Object
    With New NetComDomain
        Set lib = .CreateObject("UserControl1", "ClassLibrary1", DllPath)
    End With
 
    Me.ControlContainer0.Object.LoadControl lib
 
    MsgBox lib.SayHello
 
    Set lib = Nothing
 
End Sub