TextBoxとの違いは、TextBox と RichTextBox - RichTextBox の概要にあります。
型 | プロパティ | 内容 |
---|---|---|
RichTextBoxScrollBars | ScrollBars | 表示するスクロールバーの種類
WordWrapがtrueのときは、この設定にかかわらず水平スクロールバーは表示されない |
書式の変更は、現在選択されているテキストと、それ以降に入力されるテキストに適用されます。
richTextBox1.Clear(); richTextBox1.SelectedText = "ABC"; richTextBox1.SelectionColor = Color.Red; richTextBox1.SelectedText = "Red"; richTextBox1.SelectionColor = Color.Blue; richTextBox1.SelectedText = "Blue";
これを実行すると、コントロール内のテキストは「ABCRedBlue」と表示されます。RichTextBox.SelectionColor プロパティ (System.Windows.Forms) | MSDN
richTextBox1.Clear(); richTextBox1.SelectedText = "ABC"; richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold); richTextBox1.SelectedText = "Bold"; richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Italic); richTextBox1.SelectedText = "Italic";
これは「ABCBoldItalic」となります。RichTextBox.SelectionFont プロパティ (System.Windows.Forms) | MSDN
テキストの追加をくり返すのは時間がかかります。しかしRichTextBoxにはBeginUpdate()のようなメソッドはなく、SuspendLayout()はコントロールの内容の更新には作用しません。Is there BeginUpdate, EndUpdate with the RichTextBox control?
この問題に対処するには、テキストを一括して追加するようにします。それがプレーンテキストならば、文字列を作成した上でそれをTextプロパティに設定します。書式設定されたテキストならば、Rtfプロパティに設定します。そのときRTF形式でテキストを作成するには作業用のRichTextBoxを作成し、そこにテキストを追加した上で、そのRtfプロパティをコピーすると簡単です。
RichTextBox temp = new RichTextBox(); temp.SelectedText = etc; temp.SelectedText = etc; ... richTextBox.Rtf = temp.Rtf;