カスタムコントロールでのデフォルトのフォントの変更
カスタムコントロール(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