- ベストアンサー
RichTextBoxの改行を認知してくれない
お世話になります。勉強のために リッチテキストボックスをひとつ作成し、プロパティ のTextにマウスをやると入力欄が出ましたので aaa bbb ccc ddd eee fff ggg と改行しながら入力したら、リッチテキストボックス に、意図したとおりに入力できているし 実行しても意図したとおりに文字が入っています。 一瞬これはいいぞ!と思いましたが ただ、プロパティのTextの欄には aaabbbcccdddeeefffgggと横長に 入っており、少し嫌な予感がしました。 まあスペースの関係でそうなってるのだろうと思いました。 次にバー(HScrollBar1)を作成し 0-6で可変。 ユーザーが行番号を指定する 目的です。 以下が、バーを操作した時に、行番号に対応した 配列要素が表示されるという目的のイベントです。 (TextBox1が表示先です) Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll Dim strVal Dim aryStrings strVal = RichTextBox1.Text aryStrings = Split(strVal, "VbCr") TextBox1.Text = aryStrings(HScrollBar1.Value) End Sub 結果は、失敗でした。!! 試しに、RichTextBox1.Textのプロパティを手動で aaaVbCr bbbVbCr cccVbCr dddVbCr eeeVbCr fffVbCr gggVbCr と書き換えて実行すると、成功しました。 しかしこれでは、改行を自動的に認識していることになりません。 よく考えてみると、Split(strVal, "VbCr")のVbCrは ””で囲まれているので、単なる意味を持たない文字列のような気がします。 Split関数自体は成功ですが、 本来なら、Split(strVal, "VbCr")ではなく Split(strVal, VbCr)でもって 改行位置で区切ってほしいのですが "VbCr"で区切るのなら、"ほにゃ”で区切っても良いことに なります。 お手数ですがどなたか素人向けに教えてください。
- みんなの回答 (2)
- 専門家の回答
お礼
vbLfを利用してsplitすればよかったのですね。おかげでやっと 解決しました。というかLBound(s) To UBound(s)の件はまだ テストしてないのですが、配列の0から配列の要素数までみたいな 意味ですよね。あとで検索して調べてみたいと思います。 僕の環境ではDim i As Integer でFor i =0 to 5 Next で実験してイミジエトに出力が、うまくいきました。 正直言って、最初、フォームに出力されると思ってましたので 結構、気づくのに時間かかったんですが(^^) どちらにしても肝心なことは解決できましたので 本当にありがとうございました!