2009-10-31 42 views
0

我需要一種方式來初始化我的Web控件的屬性,當它被放在設計器區域時。作爲「初始化」我的意思是:如果我的控件有一個屬性Prop1。我需要爲Prop1分配一個值,並且我需要將此值保留在ASPx上。如何在設計時初始化我的Web控件屬性?

我試過如下:

  1. 我ControlDesigner實現InitializeNewComponent:此方法不會被調用。這似乎是一個錯誤。
  2. 實現在ControlDesigner上初始化:調用此方法,但不知何故Visual Studio不允許我在此階段更改控件的屬性。
  3. 爲IComponentChangeService.ComponentAdded創建一個處理程序(每當創建任何控件時都應該調用它)。這個處理程序不會被調用。

我的問題:如何初始化我的控件屬性? PS:我知道如何設置控件的屬性。我用下面的代碼,在智能標籤工作正常:

PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.Component)["Prop1"]; 
descriptor.SetValue("Value"); 

編輯

我忘了提,因爲我需要處理,以確定物業

的價值,我不能使用ToolBoxData

回答

1
[ToolboxData("<{0}:MyControl runat=\"server\" Prop1=\"Value\" />")] 
public class MyControl 
{ 
} 
+0

哦拿去..你的回答完美地解決了我所描述的問題,但不是我的問題。我忘了提及這個解決方案是無效的,因爲我需要進行處理以確定財產的價值。這不是靜態的。無論如何感謝和upvoted。 – 2009-10-31 11:17:49