トップ回答者
デフォルトのフォントの変更

質問
-
現在.NetFramework2.0 VisualStudio2005ProでWindowsフォームの開発をしています。
ユーザからの要望ですべてのフォントをMSゴシックで作成して欲しいと依頼がありました。
画面製造担当者がすべてのフォントを変更しなくて良い方法を調査しています。
すべてのコントロールのデフォルトのフォントはMS UI ゴシックですが、それをMSゴシックにすることは可能でしょうか?
画面のLOAD時などにコントロールを再帰呼び出ししてフォントを全て変更することを考えましたが、デザイナで画面作成時のフォントがMS UI ゴシックになってしまいます。
何か良い方法がないでしょうか?
すべての返信
-
回答ありがとうございます。
FormのフォントをMSゴシックにしてコントロールを貼り付けて見たところフォントがMSゴシックになりました。
少し調べたところControlのFontプロパティはアンビエントプロパティなので親コンテナのプロパティから取得されるとわかりました。
ただToolStripコントロールのフォントはアンビエントプロパティではないみたいで親コンテナのプロパティを取得してくれませんでした。
現在、ToolStripコントロールのフォントプロパティをアンビエントプロパティにする方法を調査しています。
もし、アンビエントプロパティに出来ないようだったら、FontプロパティのDefault値をMSゴシックにする方法を調査してみます。
-
結局ToolStripのフォントをアンビエントプロパティに変更することは諦めました。
ToolStripのフォントプロパティをNewで上書きしてデフォルト値をMSゴシックに変更することですべてのフォントを変更することが出来ました。
Code Snippet//プロパティ定義
[DefaultValue(typeof(Font),"MS ゴシック, 9")]
public override Font Font
{
get { return base.Font; }
set { base.Font = value; }
}コンストラクタでフォントの初期値をMSゴシックに変更
Code Snippet/// <summary>
/// コンストラクタ
/// </summary>
public PuDataGridNavigator()
{
InitializeComponent();
this.Font = new Font("MS ゴシック", base.Font.Size);
}今まで行き詰ってしまった時に相談する人も社内になかなかいなくて途方にくれていましたが、このフォーラムを利用するようになってから助かることが多いです。
みなさんのように良い質問、良い回答が出来るよう頑張ります。
ありがとうございました。