分類:[.NET 全般]
現在、カスタムコントロールを作成しています。
デザイン時にフォームに貼り付けた際、デフォルトで Text プロパティに値が設定されます。(textBox1 など)
この初期値を変えたいと思い、ControlDesigner から派生したクラスを作成し、以下の実装を行いました。
public override void InitializeNewComponent(IDictionary defaultValues)
{
base.InitializeNewComponent(defaultValues);
defaultValues["Text"] = "あいう";
}
しかしこの場合、base.InitializeNewComponent を呼んだ時点で textBox1 なりの値が設定されてしまいます。
作成しているカスタムコントロールでは、Text プロパティに不正な値が設定されたら例外を投げるようにしています。
そのため、base.InitializeNewComponent 内で例外となってしまいます。
base.InitializeNewComponent を呼ばない場合、フォームへの追加なども行われなくなるため、これは行いたくありません。
何か良い方法はあるでしょうか。
よろしくお願いします。
|