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

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();
}