[C#][Windows Formsアプリ][RichTextBox] ScrollBarsプロパティでスクロールバーの表示を制御する

スポンサーリンク

はじめに

RichTextBoxでテキストが多くなったとき、スクロールの方法を決めるのが
ScrollBarsプロパティ です。
縦方向・横方向のスクロールバーを表示するかどうかを設定できます。

 

ScrollBarsプロパティとは?

ScrollBars プロパティは、RichTextBoxに表示するスクロールバーの種類を指定します。
列挙型 RichTextBoxScrollBars の値を設定して制御します。

主な設定値一覧

設定値 意味
None スクロールバーを表示しない
Horizontal 横スクロールバーを表示
Vertical 縦スクロールバーを表示
Both 縦・横両方のスクロールバーを表示
ForcedHorizontal 常に横スクロールバーを表示
ForcedVertical 常に縦スクロールバーを表示
ForcedBoth 常に両方のスクロールバーを表示
💡 ポイント:
通常は VerticalBoth を使うことが多いです。
Forced* 系はテキスト量に関係なく常に表示します。

 

基本の使い方

コード例

// 縦スクロールバーを表示
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;

// 縦・横両方を表示
richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;

// 常に両方を表示
richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedBoth;

デザイナーで設定する

  1. RichTextBoxを選択
  2. プロパティウィンドウの ScrollBars から種類を選択

 

実用例:ログビューア風の設定

using System;
using System.Windows.Forms;

namespace RichTextBoxScrollBarsSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            richTextBox1.WordWrap = false; // 折り返し無効
            richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;

            // ダミーテキスト
            for (int i = 0; i < 30; i++)
            {
                richTextBox1.AppendText($"ログ行 {i + 1}: サンプルテキストが続きます...\r\n");
            }
        }
    }
}

このように設定すると、縦横両方向のスクロールが可能になり、ログやソースコードのような長文でも快適に閲覧できます。

 

WordWrapプロパティとの関係

  • WordWrap = true の場合 → 横スクロールバーは表示されない
  • WordWrap = false の場合 → 横スクロールバーが表示可能
richTextBox1.WordWrap = false;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;
💬 補足:
横方向のスクロールを有効にしたいときは、必ず WordWrap を無効にしてください。
折り返しが有効なままだと、どんな設定でも横スクロールは出ません。

 

注意点

  • ScrollBars の設定は、RichTextBox特有の列挙型を使う
  • Both を設定しても、WordWrap = true だと横スクロールは非表示になる
  • スクロール位置を自動で下まで移動させたい場合は ScrollToCaret() を使う

 

まとめ

  • ScrollBars はRichTextBoxのスクロール動作を決める重要なプロパティ
  • 用途に応じて VerticalBothForcedBoth を使い分ける
  • WordWrap との連携に注意

 

Please follow and like us:

コメント

タイトルとURLをコピーしました