はじめに
文書の「見やすさ」は編集効率に直結します。
ZoomFactor は、RichTextBox に表示されるテキストの“表示倍率(ズーム)”を
プログラムから変更できるプロパティです。本文はそのまま、見た目の拡大・縮小だけを行います。
ZoomFactorプロパティとは?
ZoomFactor は 単精度浮動小数(float)で、
1.0 = 100% を基準に、0.5 = 50%、2.0 = 200% のように倍率を指定します。
ポイント
・ズームは表示だけに影響します。
・一般的に最小はおよそ 0.1(10%)、最大はおよそ 64(6400%) 付近で動作します(環境により若干の差異あり)。
・ズームは表示だけに影響します。
Text / Rtf に保存される内容(フォントサイズ等)は変わりません。・一般的に最小はおよそ 0.1(10%)、最大はおよそ 64(6400%) 付近で動作します(環境により若干の差異あり)。
基本の使い方
固定倍率を設定する
// 150% に拡大
richTextBox1.ZoomFactor = 1.5f;
// 元の倍率(100%)に戻す
richTextBox1.ZoomFactor = 1.0f;
段階的に拡大・縮小する
private void ZoomIn(float step = 0.1f)
{
float next = MathF.Min(richTextBox1.ZoomFactor + step, 64.0f);
richTextBox1.ZoomFactor = next;
}
private void ZoomOut(float step = 0.1f)
{
float next = MathF.Max(richTextBox1.ZoomFactor - step, 0.1f);
richTextBox1.ZoomFactor = next;
}
実用例:ズームイン/ズームアウト・リセットボタン
using System;
using System.Windows.Forms;
namespace RichTextBoxZoomSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
richTextBox1.Text = "ZoomFactorで表示倍率を変更できます。\r\n100% を基準に拡大・縮小します。";
UpdateStatus();
}
private void btnZoomIn_Click(object sender, EventArgs e)
{
richTextBox1.ZoomFactor = Math.Min(richTextBox1.ZoomFactor + 0.2f, 64.0f);
UpdateStatus();
}
private void btnZoomOut_Click(object sender, EventArgs e)
{
richTextBox1.ZoomFactor = Math.Max(richTextBox1.ZoomFactor - 0.2f, 0.1f);
UpdateStatus();
}
private void btnReset_Click(object sender, EventArgs e)
{
richTextBox1.ZoomFactor = 1.0f; // 100%
UpdateStatus();
}
private void UpdateStatus()
{
lblZoom.Text = $"倍率: {(int)(richTextBox1.ZoomFactor * 100)}%";
}
}
}
ショートカットを割り当てるなら、Ctrl + +(拡大)、Ctrl + -(縮小)、Ctrl + 0(リセット)などが定番です。
実用例:トラックバー(スライダー)で連動
// フォーム初期化時
trackBarZoom.Minimum = 10; // 10%
trackBarZoom.Maximum = 400; // 400% など任意
trackBarZoom.Value = 100; // 既定 100%
trackBarZoom.TickFrequency = 10;
trackBarZoom.ValueChanged += (s, e) =>
{
richTextBox1.ZoomFactor = trackBarZoom.Value / 100f;
lblZoom.Text = $"倍率: {trackBarZoom.Value}%";
};
UI と倍率が視覚的に連動するため、ユーザーにとって扱いやすい実装です。
よくある疑問と落とし穴
| Q. フォントサイズは変わる? | いいえ。表示倍率だけが変わります。Rtf に保存されるフォントサイズはそのままです。 |
|---|---|
| Q. 折り返しやスクロールは? | WordWrap や ScrollBars の動作はそのまま。ズームにより見かけの行数・スクロール量は変わります。 |
| Q. すごく大きく(小さく)すると重い | 極端な倍率は描画負荷が上がります。上限・下限をアプリ側でクリップしましょう(例:10%〜400%)。 |
| Q. 既定値は? | 1.0f(100%)です。リセット時はこれを設定します。 |
実装チェックリスト
- 上限・下限を決めて クリップ(例:
0.1f〜4.0f) - 現在倍率を UI に表示(ラベルやステータスバー)
- ショートカットキーの割り当て(Ctrl + +/-/0)
- ユーザー設定として保存するなら、アプリ設定(
Properties.Settingsなど)へ永続化
まとめ
ZoomFactorは 表示倍率 を制御するプロパティ(内容は不変)- 100% は
1.0f。UI 操作(ボタン/スライダー/ショートカット)に簡単に連動できる - 実装時は上限・下限のクリップと現在倍率の可視化が使い勝手を左右する
Please follow and like us:

コメント