我需要一种方法来在我的 Web 控件放置在设计器区域时对其属性进行初始化。作为“初始化”,我的意思是:如果我的控件有一个属性 Prop1。我需要为 Prop1 分配一个值,并且我需要将此值保留在 ASPx 上。
我尝试了以下方法:
- 在我的 ControlDesigner 上实现 InitializeNewComponent:永远不会调用此方法。这似乎是一个错误。
- 在我的 ControlDesigner 上实现 Initialize:调用此方法,但不知何故 Visual Studio 不允许我在此阶段更改控件的属性。
- 为 IComponentChangeService.ComponentAdded 创建一个处理程序(应该在每次创建任何控件时调用)。这个处理程序永远不会被调用。
我的问题:如何初始化我的控件属性?
PS:我知道如何设置我的控件的属性。我使用以下代码在智能标签上运行良好:
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.Component)["Prop1"];
descriptor.SetValue("Value");
编辑
我忘了提到我不能使用 ToolBoxData 因为我需要进行处理以确定属性的值