[Windows] 「フォント設定」機能を実装する

ここではテキストボックスのフォントを設定する機能を実装します。
広 告
目次
前提条件
- 「ファイルを「開く」前に終了確認をする」が実施済であること
動作確認環境
- Windows10 64bit
- Visual Studio Express 2015 for Windows Desktop
1. 「フォント」メニューを作成する
ここではフォント設定機能として、まずは「フォント」メニューを作成します。
「フォント」メニューは、「設定」メニューの中に作成します。「設定」メニューと「フォント」メニューは、以下のように作成します。

各メニューのNameプロパティは以下の名称で設定します。
メニュー名 | Nameプロパティ |
---|---|
設定 | MenuItemSetting |
フォント | MenuItemSettingFont |
2. 「フォント設定」ダイアログを追加する
ここでは「フォント設定」ダイアログを追加します。
「フォント設定」ダイアログを追加するためには、デザイン画面の「ツールボックス」ウィンドウの「ダイアログ」メニューから「FontDialog」コンポーネントをフォームに貼り付けます。

追加した「FontDialog」コンポーネントのNameプロパティは「FontDialog」と設定します。
デザイン画面のフォームから「フォント」メニューをダブルクリックし、「フォント」メニューがクリックされた時に実行されるMenuItemSettingFont_Click()
メソッドを追加します。
「フォント」メニューがクリックされた時は、「フォント設定」ダイアログを表示させるため、以下のコードを追加します。
「フォント」メニューをクリックしたときの処理
private void MenuItemSettingFont_Click(object sender, EventArgs e) { // テキストボックスに設定されているフォントを初期選択させる FontDialog.Font = textBox.Font; if (DialogResult.OK == FontDialog.ShowDialog()) { // 「OK」ボタンがクリックされた場合にフォント設定する textBox.Font = FontDialog.Font; } }
テキストボックスに設定されているフォントを初期選択値として設定してから、ダイアログを表示するようにします。「OK」ボタンがクリックされた時だけ、設定を反映させます。

試しに現時点でアプリケーションを実行して、「フォント設定」ダイアログを表示させてみると上記のとおりに表示されます。今回作成するテキストエディタでは、「文字飾り」と「文字セット」の日本語以外が不要であるため、機能を削除します。
機能削除するための設定は、アプリケーションを起動したときに一度だけ実行できればよいの、Form1_Load()
メソッドに実装します。
「フォント」設定の不要機能を削除
private void Form1_Load(object sender, EventArgs e) { this.Text = ApplicationName; // 複数行入力を有効化 textBox.Multiline = true; // 垂直方向スクロールバー表示を有効化 textBox.ScrollBars = ScrollBars.Vertical; // フォーム全体にテキストボックスを表示 textBox.Dock = DockStyle.Fill; // 「名前を付けて保存」ダイアログで「ファイル種類」を選択させる SaveFileDialog.Filter = "テキスト文章|*.txt|すべてのファイル|*.*"; // 不要なフォント設定を削除 FontDialog.ShowEffects = false; FontDialog.AllowScriptChange = false; UpdateStatus("", false); }
FontDialog.ShowEffects
にfalse
を設定すると「文字飾り」が消えます。FontDialog.AllowScriptChange
にfalse
を設定すると「文字セット」で日本語以外が選択できなくなります。
3. プログラムを実行して結果を確認する
これまでの手順の実行結果は以下の通りです。

「設定」メニューから「フォント」メニューをクリックします。

「フォント設定」ダイアログが表示されます。適当にフォントサイズとフォント名を変更し「OK」ボタンをクリックします。

テキストボックスに任意の文字を入力すると、フォント設定が反映されていることが確認できます。