3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

カスタムコントロールでのデフォルトのフォントの変更

カスタムコントロール(Butonを継承し+αしたもの)を作っていて、デフォルトでのFontプロパティのフォント種を変えてほしいという話がありました。

実は.NetにControl.DefaultFontというプロパティがあるのですが、これは読み取り専用でしかもMSDNによると、ユーザーのオペレーティング システム、およびシステムのローカル カルチャの設定によって異なるとのこと。
使えない。。

Control.Font プロパティをオーバーライドして、
C#の場合)

[DefaultValue(typeof(Font),"MS ゴシック, 9")] 
public override Font Font{
 // ...
}

VBの場合)

Public Overrides Property Font() Font
 '...
End Property

という方法もあるんでしょうが、これだけのことにオーバーライドするのもめんどいのでとりあえず、下記のコードで対応してました。

カスタムコントロール側のコンストラクタで、Fontプロパティ設定。。。
動きは問題ないようなので、これでええんかな?

Public Sub New()
        ' この呼び出しは、Windows フォーム デザイナで必要です。
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        MyBase.Font = New Font("HG創英角ポップ体", 18, FontStyle.Regular, GraphicsUnit.Point, 1)
End Sub