Visual Studio 2008 では、いくつかのコントロールをフォームに追加すると、デザイナーはコントロールのプロパティに関するいくつかのコードを自動的に作成します。現在、私は独自のユーザー コントロールを使用しており、それらをフォームに追加することで、デザイナーは再びコード行を自動的に作成します。この場合、プロパティ FONT は、デザイナーに追加してほしくないものの 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 に答える