2
考慮到有一個屬性行的自定義控件:定製控件屬性
private EMRow[] _rows;
public CustControl()
{
InitializeComponent();
}
public EMRow[] Rows
{
get
{
return _rows;
}
set
{
_rows = value;
}
}
每個EMRow創建一個文本框,並公開了兩個屬性,一個是文字,一個用於控制本身:
private TextBox _txtValue;
public EMRow()
{
if (_txtValue == null)
_txtValue = new TextBox();
}
public string Value
{
get
{
return _txtValue.Text;
}
set
{
_txtValue.Text = value;
}
}
public TextBox ValueTextBox
{
get
{
return _txtValue;
}
set
{
_txtValue = value;
}
}
如果將此自定義控件拖放到窗體上並修改Value屬性,它將更新並保存對designer.cs文件的更改。
當您向下深入到ValueTextBox屬性(再次,所有這些在Visual Studio設計器中,而不是代碼中)並修改屬性時,這些更改不會保存到designer.cs文件中。就設計師而言,甚至沒有創建和引用該屬性的TextBox對象。
我確定這是'按預期行爲'的行爲,但我很難理解爲什麼。我錯過了VS設計師的基礎嗎?