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