0

デザイナーを使用してフォームにコントロールを追加すると、コントロールのすべてのプロパティがデザイナー コードに表示されるわけではありません。たとえば、プロパティを追加するとListBoxUseWaitCursorプロパティが に設定されていない限り、デザイナー コードに表示されませんTrue。に変更するとFalse、デザイナーコードから消えます。これにより、プロパティには何らかのデフォルトがあり、デフォルトのままにしておくとデザイナーコードに表示されないと思います。

デザイナーがどのように機能し、これらすべてがどこで追跡されているかを理解するのを手伝ってくれませんか。私が尋ねる理由は、現在、実行時に動的に初期化する予定のサード パーティの ActiveX コントロールを拡張するクラスを作成しているためです。デザイナー コード (デザイナーを介してサード パーティ コントロールが追加されたとき) を調べていましたが、多くのプロパティがそこに表示されません。

4

1 に答える 1

2

これは [DefaultValue] 属性で行われます。Control.UseWaitCursor プロパティは次のようになります。

[DefaultValue(false)]
public bool UseWaitCursor
{
   // etc..
}

したがって、[プロパティ] ウィンドウで値を False のままにしておくと、デザイナーは、値を太字で表示すべきではないこと、および既定値が既に適切であるため、InitializeComponent() メソッドにプロパティの割り当てを配置する必要がないことを認識します。ActiveX コントロールには、多くのプロパティが既定値に設定されていることも確かです。

于 2012-10-05T23:29:20.883 に答える