2012-10-05 106 views
0

當我通過設計器將控件添加到表單中時,控件的所有屬性都不會出現在設計器代碼中。例如,當我添加一個ListBox時,UseWaitCursor屬性不會出現在設計器代碼中,除非它設置爲True。當我將其更改爲False時,它從設計器代碼中消失,這讓我認爲這些屬性在某種程度上具有默認設置,並且在默認情況下不會出現在設計器代碼中。控件的默認屬性

有人可以幫助我瞭解設計師是如何工作的以及在何處進行跟蹤。我問的原因是我目前正在編寫一個擴展第三方ActiveX控件的類,我計劃在運行時動態初始化它。我正在瀏覽設計器代碼(當通過設計人員添加第三方控件時),並且其中很多屬性都沒有出現。

回答

2

這是通過[DefaultValue]屬性完成的。該Control.UseWaitCursor性質類似於這樣:

[DefaultValue(false)] 
public bool UseWaitCursor 
{ 
    // etc.. 
} 

所以,如果你假在屬性窗口中離開了值,那麼設計師都知道,它不應該在大膽顯示值,它是沒有必要的將屬性賦值放在InitializeComponent()方法中,因爲默認值已經很好。一個ActiveX控件肯定會有很多屬性設置爲默認值。