combit List & Label 29 - .NET Hilfe
Einführung in die Programmierung / Beispiele / Allgemein / Designer um eigene Funktion erweitern
In diesem Thema
    Designer um eigene Funktion erweitern
    In diesem Thema

    Das folgende Beispiel zeigt, wie eine Funktion hinzugefügt werden kann, die es ermöglicht, den Wert eines Registrierungsschlüssels innerhalb eines Berichts abzufragen. Das Ergebnis der Funktion könnte dann z.B. in Darstellungsbedingungen für Objekte verwendet werden. Natürlich können die Eigenschaften der DesignerFunction-Klasse alternativ auch direkt im Eigenschaften-Fenster der Entwicklungsumgebung angelegt werden.

    using (ListLabel LL = new ListLabel())
    {
        // Datenquelle definieren/zuweisen
        LL.DataSource = CreateDataSet();
    
        // Funktion initialisieren
        DesignerFunction RegQuery = new DesignerFunction();
        RegQuery.FunctionName = "RegQuery";
        RegQuery.GroupName = "Registry";
        RegQuery.MinimalParameters = 1;
        RegQuery.MaximumParameters = 1;
        RegQuery.ResultType = LlParamType.String;
        RegQuery.EvaluateFunction += new EvaluateFunctionHandler(RegQuery_EvaluateFunction); 
    
        // Funktion hinzufügen
        LL.DesignerFunctions.Add(RegQuery);
    
        // Call the designer
        LL.Design();
    }
    
    // ...
    
    void RegQuery_EvaluateFunction(object sender, EvaluateFunctionEventArgs e)
    {
        // Registrierungsschlüssel auslesen
        RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\combit\");
        e.ResultValue = key.GetValue(e.Parameter1.ToString()).ToString();
    }
    
    Using LL As New ListLabel()
        ' Datenquelle definieren/zuweisen
        LL.DataSource = CreateDataSet()
    
        ' Funktion initialisieren
        Dim RegQuery As New DesignerFunction()
        RegQuery.FunctionName = "RegQuery"
        RegQuery.GroupName = "Registry"
        RegQuery.MinimalParameters = 1
        RegQuery.MaximumParameters = 1
        RegQuery.ResultType = LlParamType.[String]
        RegQuery.EvaluateFunction += New EvaluateFunctionHandler(RegQuery_EvaluateFunction)
    
        ' Funktion hinzufügen
        LL.DesignerFunctions.Add(RegQuery)
    
        ' Call the designer
        LL.Design()
    End Using
    
    ' ...
    
    Sub RegQuery_EvaluateFunction(sender As Object, e As EvaluateFunctionEventArgs) Handles RegQuery.EvaluateFunction
        ' Registrierungsschlüssel auslesen
         Dim key As RegistryKey
         RegistryKey = Registry.CurrentUser.OpenSubKey("Software\combit\")
         e.ResultValue = key.GetValue(e.Parameter1.ToString()).ToString()
     End Sub