看那TextBoxBase
類的源代碼,有兩個構造函數:
internal TextBoxBase()
{
base.SetState2(2048, true);
this.textBoxFlags[TextBoxBase.autoSize | TextBoxBase.hideSelection | TextBoxBase.wordWrap | TextBoxBase.shortcutsEnabled] = true;
base.SetStyle(ControlStyles.FixedHeight, this.textBoxFlags[TextBoxBase.autoSize]);
base.SetStyle(ControlStyles.UserPaint | ControlStyles.StandardClick | ControlStyles.StandardDoubleClick | ControlStyles.UseTextForAccessibility, false);
this.requestedHeight = base.Height;
}
和
static TextBoxBase()
{
// Note: this type is marked as 'beforefieldinit'.
TextBoxBase.autoSize = BitVector32.CreateMask();
TextBoxBase.hideSelection = BitVector32.CreateMask(TextBoxBase.autoSize);
TextBoxBase.multiline = BitVector32.CreateMask(TextBoxBase.hideSelection);
TextBoxBase.modified = BitVector32.CreateMask(TextBoxBase.multiline);
TextBoxBase.readOnly = BitVector32.CreateMask(TextBoxBase.modified);
TextBoxBase.acceptsTab = BitVector32.CreateMask(TextBoxBase.readOnly);
TextBoxBase.wordWrap = BitVector32.CreateMask(TextBoxBase.acceptsTab);
TextBoxBase.creatingHandle = BitVector32.CreateMask(TextBoxBase.wordWrap);
TextBoxBase.codeUpdateText = BitVector32.CreateMask(TextBoxBase.creatingHandle);
TextBoxBase.shortcutsEnabled = BitVector32.CreateMask(TextBoxBase.codeUpdateText);
TextBoxBase.scrollToCaretOnHandleCreated = BitVector32.CreateMask(TextBoxBase.shortcutsEnabled);
TextBoxBase.setSelectionOnHandleCreated = BitVector32.CreateMask(TextBoxBase.scrollToCaretOnHandleCreated);
TextBoxBase.EVENT_ACCEPTSTABCHANGED = new object();
TextBoxBase.EVENT_BORDERSTYLECHANGED = new object();
TextBoxBase.EVENT_HIDESELECTIONCHANGED = new object();
TextBoxBase.EVENT_MODIFIEDCHANGED = new object();
TextBoxBase.EVENT_MULTILINECHANGED = new object();
TextBoxBase.EVENT_READONLYCHANGED = new object();
}
第一個構造函數是內部的,所以只有定義類型的相同程序集才能訪問它。第二個是靜態構造函數,它在類的第一次訪問時被調用。
現在問題的答案:
如果一個抽象類,並沒有用於繼承不打算構造。 還有其他的類,例如TextBox
或RichTextBox
爲您的需要。
TextBoxBase
這個類的架構師設計了一個帶有公共OOP principe的所有文本框的文本框:Encapsulation。封裝僅用於隱藏複雜類型的實現細節。而TextBoxBase
則相當複雜。
所以不可能從TextBoxBase中混入? – samy
@samy正確。從「TextBox」或「RichTextBox」繼承,或者類似於你想要的東西。 –
好吧,我會這樣做謝謝:)但我想知道,爲什麼他們創建TextBoxBase,如果我們不能使用它? – samy