0
我想創建一個從TextBox繼承的CurrencyTextBox。我看到一些我不明白的奇怪行爲。自定義文本框調用基本文本方法
經過大量的測試,我想我可以總結如下:
在類的代碼,當我訪問base.Text(獲取文本框的文字),我真的開始的返回值我覆蓋文本屬性。
我認爲base關鍵字可以確保調用底層對象的方法。
爲了證明:
public class cTestTextBox : System.Windows.Forms.TextBox
{
string strText = "";
public cTestTextBox()
{
SetVal("AAA");
base.Text = "TEST";
}
public override string Text
{
get
{
string s = strText;
s = "++" + s + "++";
return s;
}
}
public void SetVal(string val)
{
strText = val;
}
}
在窗體上放置這種控制,並設置在構造一個斷點。運行應用程序。將鼠標懸停在base.Text表達式上。請注意,該工具提示會顯示重寫的屬性的值,而不是基本屬性。執行SetVal()語句並將鼠標懸停在base.Text表達式上。請注意,tooltop會顯示重寫屬性的值,而不是基本屬性。
如何可靠地訪問我從中繼承的文本框的Text屬性?