クラスのソース コードを見てくださいTextBoxBase
。2 つのコンストラクターがあります。
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();
}
最初のコンストラクターは内部であるため、型を定義する同じアセンブリのみがそれにアクセスできます。2 つ目は静的コンストラクターで、クラスの最初のアクセス時に呼び出されます。
今あなたの質問への答え:
抽象クラスにコンストラクターがない場合、継承に使用することは意図されていません。TextBox
たとえば、またはRichTextBox
あなたのニーズに合わせて、他のクラスがあります。
クラスのアーキテクトはTextBoxBase
、共通の OOP 原則であるカプセル化を使用して、すべてのテキスト ボックスのテキスト ボックス ベースを設計しました。カプセル化とは、要するに、複合型の実装の詳細を隠すことです。そして、これTextBoxBase
は非常に複雑です。