デザイナー領域にドロップされたときに Web コントロールのプロパティを初期化する方法が必要です。「初期化」とは、つまり、コントロールにプロパティ Prop1 がある場合です。Prop1 に値を割り当てる必要があり、この値を ASPx で保持する必要があります。
私は次のことを試しました:
- ControlDesigner に InitializeNewComponent を実装します。このメソッドは呼び出されません。バグのようです。
- ControlDesigner に Initialize を実装します。このメソッドが呼び出されますが、Visual Studio では、この段階でコントロールのプロパティを変更することはできません。
- IComponentChangeService.ComponentAdded へのハンドラーを作成します (コントロールが作成されるたびに呼び出されるはずでした)。このハンドラが呼び出されることはありません。
私の質問: コントロールのプロパティを初期化するにはどうすればよいですか?
PS: コントロールのプロパティを設定する方法を知っています。スマート タグで正常に動作する次のコードを使用します。
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.Component)["Prop1"];
descriptor.SetValue("Value");
編集
プロパティの値を決定する処理を行う必要があるため、ToolBoxData を使用できないことを忘れていました。