Ergänzen eigener Registerkarten
Allgemeine Beschreibung
Eine oder mehrere eigene Registerkarten an einer Menüfunktion aus dem easyWinArt-Standard zu ergänzen ist eine sinnvolle Vorgehensweise, um garantiert konfliktlos eigene Steuerelemente wie Buttons, Eingabefelder, oder ganze Tabellen unterzubringen. Der Vorteil ist, dass diese Registerkarten einfach parallel zu den Standard-Registerkarten existieren und die Standard-Weiterentwicklung nicht behindern oder beeinflussen. Des weiteren gibt es die Möglichkeit, Steuerlemente auf eine eigene Registerkarte zu kopieren, die sich auf mehreren Standard-Registerkarten verteilt befinden, um die Bedienung von easyWinArt zu erleichtern.
Eine eigene Registerkarte kann rein programmiertechnisch ergänzt oder auch visuell gestaltet werden. Im zweiteren Fall besteht der Vorteil, dass die Steuerelemente auf der Registerkarte sehr leicht mit dem Designer vom Microsoft Visual Studio ausgerichtet werden können und das Ergebnis schon in der Entwicklung betrachtet werden kann.
Programmiertechnische Realisierung
Das Ergänzen der Registerkarte wird im Bereich 'TriggerFormFramework' im Ereignis 'StartForm' durchgeführt, also recht früh beim Laden einer Menüfunktion. Programmiertechnisch wird ein Objekt vom Typ 'TabPage' erzeugt sowie ein Icon, ein Name und ein ToolTip-Text vergeben. Durch das Hinzufügen zum 'TabControlStandard' werden dann die Standard-Registerkarten um die eigene Registerkarte ergänzt. Im nachfolgenden Beispiel wird der Menüfunktion 'Artikel' eine eigene Registerkarte hinzugefügt.
VB.NET SDK-Programmcode
#Region " TriggerFormFramework_StartForm-Ereignis "
Private Sub TriggerFormFramework_StartForm(ByVal sender As Object, ByVal e As FormFrameworkStartFormEventArgs) Handles Me.StartForm
'>>> Bei Menüfunktion A R T I K E L
If TypeOf sender Is ArtikelFRM Then
Dim artFRM As ArtikelFRM
artFRM = CType(sender, ArtikelFRM)
'>>> Eigene Registerkarte programmiertechnisch erzeugen
Dim meineTabpageOBJ As New TabPage
meineTabpageOBJ.ImageIndex = 1296
meineTabpageOBJ.Text = ""
meineTabpageOBJ.Name = "EigeneRegisterkarte"
meineTabpageOBJ.ToolTipText = "Eigene Registerkarte"
'>>> Eigene Registerkarte dem easyWinArt-TabControl hinzufügen
artFRM.TabControlStandard.Controls.Add(meineTabpageOBJ)
End If
End Sub
#End Region
Visuelle Realisierung
Die visuelle Realisierung einer eigenen Registerkarte hat den Vorteil, dass das Aussehen der Registerkarte visuell unter Verwendung des Formular-Designers gestaltet werden kann. So können z.B. Steuerelemente per Drag & Drop platziert werden etc.
Dazu fügen Sie im Projekt '03-UserLayer-SDK' im Ordner 'user-defined-forms' durch Rechtsklick ein neues Objekt vom Typ 'Windows Form' hinzu und nennen dieses z.B. 'PositionsStücklisteFRM.vb'. Öffnen Sie diese und platzieren darauf ein Steuerelement 'EwaTabControl'. Stellen Sie die Größe (Size) des TabControls auf '423; 656' ein. In Control sind dann gleich zwei TabPages enthalten, von denen die erste z.B. 'TabPagePositionsStückliste' genannt wird (Name und Text), AutoScroll wird auf 'True' gesetzt. Darin kann dann wiederum eine 'EwaGroupBox' platziert werden mit dem Namen 'GroupBoxStückliste' und dem Text 'Stückliste' sowie der Eigenschaft 'Dock = Top'. In der Groupbox werden denn eine DataGridView 'DataGridViewStl' und ein Button 'ButtonStücklisteImportieren' eingefügt.
VB.NET SDK-Programmcode
#Region " TriggerFormFramework_StartForm-Ereignis "
Private Sub TriggerFormFramework_StartForm(ByVal sender As Object, ByVal e As FormFrameworkStartFormEventArgs) Handles Me.StartForm
'>>> Bei Menüfunktion V O R G A N G
If TypeOf sender Is VorgangsPositionFRM Then
Dim posFRM As VorgangsPositionFRM
posFRM = CType(sender, VorgangsPositionFRM)
'>>> Registerkarte einbauen
Dim posStlListeOBJ As New PositionsStücklisteFRM
posStlListeOBJ.TabPagePositionsStückliste.Text = ""
posStlListeOBJ.TabPagePositionsStückliste.ToolTipText = "Positions-Stückliste"
posStlListeOBJ.TabPagePositionsStückliste.ImageIndex = 1899
posFRM.TabControlStandard.Controls.Add(posStlListeOBJ.TabPagePositionsStückliste)
AddHandler posStlListeOBJ.c.Click, AddressOf StücklisteImportieren
posStlListeOBJ.Dispose()
End If
End Sub
#End Region
#Region " Private Sub: StücklisteImportieren () "
Private Sub StücklisteImportieren(ByVal sender As Object, ByVal e As System.EventArgs)
'>>> Code zum Erstellen der Stücklisten usw...
End Sub
#End Region