Zum Hauptinhalt springen

Eigenes Steuerelement hinzufügen

Wenn Sie einem Generic Dialog eigene Steuerelemente hinzuweisen wollen die Sie selbst programmiert haben gehen Sie bitte wie folgt vor.

Öffnen Sie den Formular Designer des Dialoges und fügen Sie dem Dialog einen "API Control" hinzu und merken Sie sich dessen Name z.B. "$APICONTROL1".

Im Formular Designer wird also vom Anwender die Position und Größe festgelegt.

Erzeugen Sie eine Klasse für ihr Steuerelement und leiten sie dieses von ApiControlPlugIn ab. In dieser Klasse können sie nun mit ctrl.ControlHost.Children.Add eigene beliebige Control hinzufuegen.

public class MyControl : ApiControlPlugIn
{
public ApiControlDuct(CTApiControl ctrl) : base(ctrl)
{
Button myButton = new Button():
ctrl.ControlHost.Children.Add(myButton);
}
}

Erzeugen Sie ein Dialog Plugin wie im vorigen Kapitel gezeigt.

Fügen Sie wenn nicht bereits vorhanden dem Dialog Plugin eine Überladung "Register" hinzu und registrieren Sie nun ihr Steuerelement

Beispiel:

public override void Register()
{
MyControl ctrl = this.RegisterApiControlEx("$APICONTROL1", typeof(MyControl)) as MyControl;
}

Controls direkt in eine Formular einfügen

Sie können Steuerelemente auch direkt in einen Dialog einfügen ohne den Form Designer zu verwenden.

Die hat den Nachteil das der Endanwender die Postion und Größe des Steuerelementes nicht beeinflussen kann. Sie sollten deswegen immer ein API Control vorziehen.

Beispiel:

using System;
using Mum.Geo.PlugIns;
using Mum.Geo.Client.Generic;
using Mum.Geo.Client.Events;
using XSystem;

namespace MySample1
{
[GenericFormPlugIn("*.BAUM")]
public class BaumDialog : GenericFormPlugIn
{
public BaumDialog(GenericForm genericForm) : base(genericForm)
{
Button meinButton = new Button();

//Der Erste Parameter ist das Register in das das UI Element eingefügt werden soll.
//Danach folgt optional die Position
this.GenericForm.AddUIElement(0, meinButton, 20, 20);
}
}
}