Gemeinsam zu mehr Effizienz in der Anwendungserstellung
(→VB.NET UserControl) |
(→DotNetDataGridView) |
||
Zeile 116: | Zeile 116: | ||
[[Datei:DotNetLib_DotNetControlContainer_VBNetUserControl.png]] | [[Datei:DotNetLib_DotNetControlContainer_VBNetUserControl.png]] | ||
+ | |||
+ | ==DotNetDataGridView== | ||
+ | |||
+ | * Checken Sie die aktuelle Version des DotNetDataGridView mittels Subversion aus: | ||
+ | |||
+ | <source> | ||
+ | svn co https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetDataGridView | ||
+ | </source> | ||
+ | |||
+ | * Erstellen Sie das Projekt mit Visual Studio und kopieren Sie aus dem Debug-Ordner die Dateien DotNetDataGridView.dll und DotNetDataGridView.tlb in ein beliebiges Verzeichnis. | ||
+ | * 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. | ||
+ | * Fügen Sie einen Verweis auf die Datei DotNetDataGridView.tlb hinzu (Button Durchsuchen im Verweis-Dialog). | ||
+ | * Fügen Sie einen Verweis auf die Microsoft ActiveX Data Objects Library hinzu | ||
+ | * 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 in das Formular einen Button Befehl2 ein. | ||
+ | * Fügen Sie dem Formular folgenden Code hinzu | ||
+ | |||
+ | <source lang="vb"> | ||
+ | Option Compare Database | ||
+ | Option Explicit | ||
+ | |||
+ | Private WithEvents GridView As DotNetDataGridView.DotNetDataGridView 'Private GridView As Object | ||
+ | Private adodbRS As ADODB.Recordset | ||
+ | |||
+ | Private Sub Form_Load() | ||
+ | |||
+ | With New NetComDomain | ||
+ | Set GridView = .CreateObject("DotNetDataGridView", "ACLibDotNet", CodeProject.Path & "\" & "DotNetDataGridView.dll") | ||
+ | Me.ControlContainer0.Object.LoadControl GridView | ||
+ | End With | ||
+ | |||
+ | End Sub | ||
+ | |||
+ | Private Sub Form_Close() | ||
+ | Set GridView = Nothing | ||
+ | Set adodbRS = Nothing | ||
+ | End Sub | ||
+ | |||
+ | Private Sub Befehl1_Click() | ||
+ | |||
+ | Set adodbRS = New ADODB.Recordset | ||
+ | adodbRS.Open "SELECT * FROM Tabelle1;", CurrentProject.Connection | ||
+ | |||
+ | GridView.readFromRecordSet adodbRS | ||
+ | |||
+ | End Sub | ||
+ | |||
+ | Private Sub Befehl2_Click() | ||
+ | GridView.setBackgroundColor 99, 155, 255 | ||
+ | End Sub | ||
+ | |||
+ | Private Sub GridView_OnBackgroundColorChanged(ByVal message As String) | ||
+ | VBA.MsgBox "BgColor was changed to: " & message | ||
+ | End Sub | ||
+ | </source> | ||
+ | |||
+ | * Fügen Sie der Datenbank eine Tabelle mit dem Namen Tabelle1 hinzu. |
Inhaltsverzeichnis |
Option Compare Database Option Explicit Private Sub Befehl1_Click() Dim DllPath As String DllPath = "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll" Dim WinForm As Object With New NetComDomain Set WinForm = .CreateObject("Form", "System.Windows.Forms", DllPath) WinForm.TopLevel = False End With Me.ControlContainer0.Object.LoadControl WinForm Set WinForm = Nothing With Me.ControlContainer0.Object.Control .Text = "Das ist ein .NET Winform" .StartPosition = 1 .ShowIcon = False .Show End With End Sub
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 Return "Hallo, ich bin eine Public Function!" End Function End Class
Option Compare Database Option Explicit Private Sub Befehl1_Click() Dim DllPath As String DllPath = Application.CodeProject.Path & "\" & "ClassLibrary1.dll" With New NetComDomain Me.ControlContainer0.Object.LoadControl .CreateObject("UserControl1", "ClassLibrary1", DllPath) End With MsgBox Me.ControlContainer0.Object.Control.SayHello End Sub
svn co https://svn.access-codelib.net/svn/DotNetLib/trunk/office/access/forms/DotNetDataGridView
Option Compare Database Option Explicit Private WithEvents GridView As DotNetDataGridView.DotNetDataGridView 'Private GridView As Object Private adodbRS As ADODB.Recordset Private Sub Form_Load() With New NetComDomain Set GridView = .CreateObject("DotNetDataGridView", "ACLibDotNet", CodeProject.Path & "\" & "DotNetDataGridView.dll") Me.ControlContainer0.Object.LoadControl GridView End With End Sub Private Sub Form_Close() Set GridView = Nothing Set adodbRS = Nothing End Sub Private Sub Befehl1_Click() Set adodbRS = New ADODB.Recordset adodbRS.Open "SELECT * FROM Tabelle1;", CurrentProject.Connection GridView.readFromRecordSet adodbRS End Sub Private Sub Befehl2_Click() GridView.setBackgroundColor 99, 155, 255 End Sub Private Sub GridView_OnBackgroundColorChanged(ByVal message As String) VBA.MsgBox "BgColor was changed to: " & message End Sub