カスタムユーザーコントロールがあり、そのFontプロパティがオーバーライドされています。カスタムusercontrolのオーバーライドされたフォントプロパティがデザイナファイルに表示されない
フォームにusercontrolのコピーをドロップすると、Fontプロパティをうまく設定できますが、フォームのデザイナファイルに表示される 'Font'に設定した値が表示されません。私のアプリケーションをコンパイル/実行すると、入力した値は失われます。
また、Textプロパティをオーバーライドして、デザイナーファイルでこの値が設定されていないことを確認することもできます。これを行うためにここで回答が見つかるまで(私は ' 「DesignerSerializationVisibility」および「EditorBrowsable」属性)。私はフォントのために同じことを試みたが役に立たなかった。何か案は?
private Font _Font = UserControl.DefaultFont;
[Description("Sets the font of the button caption"),,
Browsable(true),
Bindable(true),
EditorBrowsable(EditorBrowsableState.Always),
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override Font Font
{
get { return _Font; }
set
{
_Font = value;
}
}
は、あなただけの 'base.Font'を使用することができませんか? 2つのインスタンスを持つ点は何ですか? – Patrick
文書にも[this](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.font.aspx)があります。 "*継承先への注釈 Fontプロパティをオーバーライドするとき派生クラスでは、基本クラスのFontプロパティを使用して基本実装を拡張します。そうでない場合は、すべての実装を指定する必要があります。Fontプロパティのgetアクセサとsetアクセサの両方をオーバーライドする必要はなく、 。* " – Patrick