0

Visual Studio 2008 では、いくつかのコントロールをフォームに追加すると、デザイナーはコントロールのプロパティに関するいくつかのコードを自動的に作成します。現在、私は独自のユーザー コントロールを使用しており、それらをフォームに追加することで、デザイナーは再びコード行を自動的に作成します。この場合、プロパティ FONT は、デザイナーに追加してほしくないものの 1 つです。上位レベルのフォント設定を上書きします。デザイナーで設定するプロパティを設定する方法を知っている人はいますか?

4

1 に答える 1

0

デザイナーは、値が DefaultValue[属性] と異なると判断した場合にのみ、プロパティの値を変更するコード行を追加します。

カスタム コントロールで Font プロパティ (またはその他の基本クラス プロパティ) の既定値を変更する場合は、ちょっとした操作が必要です。

public class MyControl : Control
{
    public MyControl()
    {
        base.Font = new Font("Arial", 9.75f);
    }

    [DefaultValue(typeof(Font), "Arial, 9.75pt")]
    public new Font Font
    {
        get { return base.Font; }
        set { base.Font = value; }
    }
}

Font プロパティの「new」キーワードに注目してください。フォントは仮想ではないため、上書きすることはできず、そうしたくありません。オーバーライドして動作を変更します。動作を変更したくはありません (コードが単純にベースにリダイレクトされるのはそのためです)。新しい DefaultValue を公開したいだけです。これにより、デザイナーは、コントロールの新しい既定値を検討するようにだまされます。

また、構築時に Font プロパティがその値を持っていることを確認します。

于 2012-06-12T18:01:11.190 に答える