RichTextBoxにRTFを挿入するには、RichTextBox.SelectedRtfプロパティを使用しますが、RTFファイルのテキストをSelectedRtfプロパティに代入することにより、そのフォーマットされた内容がRichTextBoxに挿入されます。つまり複数のRTFファイルを連結してRichTextBoxに表示するには、RTFファイルをテキストとして読み込み、RichTextBoxのSelectionStartを末尾にし、SelectedRtfにRTFファイルのRTFを設定するという作業を繰り返せばよいということになります。
次にRTFファイル"C:\1.rtf"、"C:\2.rtf"、"C:\3.rtf"を連結し、RichTextBox(RichTextBox1)に表示するコードを示します。
'Button1のClickイベントハンドラ Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click RichTextBox1.Clear() Dim i As Integer For i = 1 To 3 'RTFファイルを読み込む Dim sr As New System.IO.StreamReader( _ "C:\" + i.ToString() + ".rtf", _ System.Text.Encoding.GetEncoding(932)) Dim rtf As String = sr.ReadToEnd() sr.Close() 'RichTextBox1に追加する AppendRtfToRichTextBox(RichTextBox1, rtf) Next i End Sub ''' <summary> ''' RichTextBoxの末尾にRTFを追加 ''' </summary> ''' <param name="rtb">RTFを追加するRichTextBox</param> ''' <param name="rtfText">追加するRTF文字列</param> Public Shared Sub AppendRtfToRichTextBox( _ ByVal rtb As RichTextBox, ByVal rtfText As String) rtb.SelectionStart = rtb.TextLength rtb.SelectedRtf = rtfText End Sub
//Button1のClickイベントハンドラ private void Button1_Click(object sender, System.EventArgs e) { RichTextBox1.Clear(); for (int i = 1; i <= 3; i++) { //RTFファイルを読み込む System.IO.StreamReader sr = new System.IO.StreamReader( "C:\\" + i.ToString() + ".rtf", System.Text.Encoding.GetEncoding(932)); string rtf = sr.ReadToEnd(); sr.Close(); //RichTextBox1に追加する AppendRtfToRichTextBox(RichTextBox1, rtf); } } /// <summary> /// RichTextBoxの末尾にRTFを追加 /// </summary> /// <param name="rtb">RTFを追加するRichTextBox</param> /// <param name="rtfText">追加するRTF文字列</param> public static void AppendRtfToRichTextBox( RichTextBox rtb, string rtfText) { rtb.SelectionStart = rtb.TextLength; rtb.SelectedRtf = rtfText; }