.NETフレームワーク内のいくつかのコントロールにいくつかのプロパティを追加したいと思います。 たとえば、何らかのリンクコントロールを作成するために、既存のコントロールを含むコントロールではなく、関連するコントロールのリストを追加したいとします。C#.NETのコントロールにプロパティを追加する
私がしたのは、Controlクラスから継承したコンクリートデコレータによって実装された、小さなインタフェースデコレータを作成することでした。ここでは、新しいプロパティとそのメソッドを管理するメソッドを示します。
主な問題は、私の装飾されたコントロールのインスタンスを作成するとき、私は基本コントロールのインスタンスをパラメータとして渡す必要があります - それはComboboxと言いましょう。デコレータクラス。
そのコンポーネントをペイントしようとすると、私はできません。また、理由も不明です。コントロールは表示されません。ここで
はデコレータコードです:
public class ControlDecorator : Control, IDecorator
{
private List<Control> RelatedControls = new List<Control>();
private Control Control;
public ControlDecorator(Control c)
{
this.Control = c;
this.Control.MouseClick += new MouseEventHandler(Control_MouseClick);
}
そして、ここでは、私がコントロールを作成する方法である:
Control lb = new Label();
lb = new ControlDecorator(lb);
editableArea.Controls.Add(lb);
editableArea.Refresh();
あなたの質問は何ですか? – Oded
BTW - フィールドのひどい命名。 – Oded
"Decorator"はGOTFのDecoratorパターンを使用するように聞こえるが、正しく実装されていない(継承は使用しないで、装飾されたオブジェクトへの参照を保持する) – Matten