どのような制御クラスのForeColor,BackColor、フォントのデフォルト値?
-
23-09-2019 - |
質問
知っているコンポーネント-モデルかどうかを示します物件のデフォルト値は、 ShouldSerializeValue法のPropertyDescriptor.
ベーススタンドアロン形態 Control
クラスがあまっていただいた皆様ありがとう ForeColor,BackColor、フォント, は、デフォルト値は同じ値の親会社が見つからない TypeDescriptor
または PropertyDescriptor
を提供するこれらのデフォルト値です。 の制御クラスでは実施ICustomTypeDescriptorもので、TypeDescriptionProviderAttribute.
どのような制御クラスを示すこれらの特性をすべき連載はありませんか?ているのを提供しPropertyDescriptorsこれらの特性に??
ん!!!
解決
これはデフォルト値はありません。これらのプロパティは、「周囲」プロパティです。 Controlクラスは、プロパティの割り当てが彼らのために発生したことを検知します。それが起こったことがない場合は、親からの対応するプロパティを使用しています。素敵されており、それは子コントロールがそのコンテナと同じ色やフォントを使用して確保します。
コントロールクラスでShouldSerializeForeColor()メソッドがあります。それは内部にあり、ユーザーコードで上書きすることはできません。他のプロパティも同じ。リフレクターまたは.NETリファレンスソースを見て、見ています。
MSDNライブラリこのようなの文書それらをます:
Windowsフォームコントロールは、周囲の使用します プロパティその子コントロールすることができます 自分の周囲のように見えます 環境。アンビエントプロパティがあります 設定されていない場合、である、という性質を制御します 親コントロールから取得。もし コントロールは、親を持ちません。 そしてプロパティが設定されていません、 決定する試行を制御します アンビエントプロパティの値を介して サイトのプロパティ。コントロールがある場合 サイトがない場合は、土地を選定ません アンビエントプロパティをサポートする場合、または プロパティが上に設定されていません AmbientProperties、制御用途 独自のデフォルト値。典型的には、 アンビエントプロパティは、Aを表します このように、コントロールの特性 Aに伝達されBackColorプロパティ、 子コントロール。例えば、ボタン その同じBackColorプロパティを持っています デフォルトでは、親フォーム。アンビエント コントロールによって提供されるプロパティ クラスが含まれます:カーソル、フォントを、 BackColorプロパティ、ForeColorプロパティ、およびrightToLeftのます。