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.

ListLabel LL = new ListLabel();
LL.DataSource = CreateDataSet();

 

// Funktion initialisieren

DesignerFunction RegQuery = new DesignerFunction();

RegQuery.FunctionName = "RegQuery";

RegQuery.GroupName = "Registrierung";

RegQuery.MinimalParameters = 1;

RegQuery.MaximumParameters = 1;

RegQuery.ResultType = LlParamType.String;

RegQuery.EvaluateFunction += new EvaluateFunctionHandler(RegQuery_EvaluateFunction);

 

// Funktion hinzufügen

LL.DesignerFunctions.Add(RegQuery);

 

LL.Design();
LL.Dispose();

 

 

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

}