combit List & Label 27 - .NET Hilfe
Einführung in die Programmierung / Weitere wichtige Konzepte / Designer anpassen und erweitern
In diesem Thema
    Designer anpassen und erweitern
    In diesem Thema

    Der Designer ist für die Anwendung keine "Black Box", sondern kann in vielen Bereichen beeinflusst werden. Neben dem Sperren von Funktionen und Menüpunkten können eigene Elemente hinzugefügt werden, die Berechnungen, Aktionen oder Ausgaben in die Funktionslogik verlegen.

     

     

    Menüpunkte, Objekte und Funktionen sperren

    Dreh- und Angelpunkt für die Designereinschränkung ist die Eigenschaft DesignerWorkspace des ListLabel-Objekts. Diese bietet die in der folgenden Tabelle aufgelisteten Eigenschaften für die Designereinschränkung:

    Property Function
    ProhibitedActions Diese Eigenschaft dient dazu, einzelne Menüpunkte aus dem Designer zu entfernen.
    ProhibitedFunctions Diese Eigenschaft dient dazu, einzelne Funktionen aus dem Designer zu entfernen.
    ReadOnlyObjects Diese Eigenschaft dient dazu, Objekte im Designer gegen Bearbeitung zu sperren. Die Objekte sind weiterhin sichtbar, können aber innerhalb des Designers nicht bearbeitet oder gelöscht werden.

    Das folgende Beispiel zeigt, wie der Designer so angepasst werden kann, dass kein neues Projekt mehr angelegt werden kann. Zudem wird die Funktion ProjectPath$ entfernt und das Objekt "Demo" gegen Bearbeitung gesperrt:

    ListLabel LL = new ListLabel();
    LL.DataSource = CreateDataSet();
    
    LL.DesignerWorkspace.ProhibitedActions.Add(LlDesignerAction.FileNew);
    LL.DesignerWorkspace.ProhibitedFunctions.Add("ProjectPath$");
    LL.DesignerWorkspace.ReadOnlyObjects.Add("Demo");
    
    LL.Design();
    LL.Dispose();
    
    Dim LL As New ListLabel()
    LL.DataSource = CreateDataSet()
    
    LL.DesignerWorkspace.ProhibitedActions.Add(LlDesignerAction.FileNew)
    LL.DesignerWorkspace.ProhibitedFunctions.Add("ProjectPath$")
    LL.DesignerWorkspace.ReadOnlyObjects.Add("Demo")
    
    LL.Design()
    LL.Dispose()
    

     

    Designer erweitern

    Der Designer kann um eigene Funktionen (DesignerFunctions), Objekte (DesignerObjects) und Aktionen (DesignerActions) erweitert werden. Eigene Funktionen können dafür verwendet werden, komplexere Berechnungen in die Applikation zu verlegen bzw. Funktionalitäten nachzurüsten, die im Standardumfang des Designers nicht vorhanden sind. Beispiele für eigene Objekte oder Aktionen sowie eine weitere eigene Funktion zeigt das mitgelieferte .NET Beispiel Designer Extension Sample.

     

    Sprachen im Designer anmelden

    Im Designer können verschiedene Sprachen angemeldet werden, um damit später Projektdateien einfach lokalisieren zu können. Wie die Übersetzungen durchgeführt werden können zeigt Projektdateien im Designer lokalisieren. Hier werden nun die drei Sprachen Englisch, Deutsch und Französisch angemeldet und können später im Designer vom Anwender einfach im Menü gewechselt werden:

                    
    // Define LCIDs
    int designerLanguageLCIDen = new CultureInfo("en").LCID;
    int designerLanguageLCIDde = new CultureInfo("de").LCID;
    int designerLanguageLCIDfr = new CultureInfo("fr").LCID;
    
    // Add/declare the available design languages
    // according to their respective LCID
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDde);
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDen);
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDfr);
    
                    
    ' Define LCIDs
    Dim designerLanguageLCIDen As Integer = New CultureInfo("en").LCID
    Dim designerLanguageLCIDde As Integer = New CultureInfo("de").LCID
    Dim designerLanguageLCIDfr As Integer = New CultureInfo("fr").LCID
    
    ' Add/declare the available design languages
    ' according to their respective LCID
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDde)
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDen)
    LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCIDfr)