TextBoxの2行目から最後までの文字列を取得したい

タグの編集
投稿者 太一  (社会人) 投稿日時 2011/7/1 23:40:40
TextBox.textにテキストが表示されているのですが、一行目は日付や名前のため、2行目以降の文字列を取得したいのですが、どうしたらいいでしょうか?

また、1行目だけの文字列の取得出来たらなと思います。


SelectionStartプロパティを使えば可能でしょうか?

よろしくお願いします。



vb2005/XP


投稿者 YuO  (社会人) 投稿日時 2011/7/2 02:08:57
Linesプロパティから,行ごとの分解された文字列の配列が取得できます。
ここのサイトの,
Visual Basic 中学校 > クラスライブラリ詳解 > System > Windows > Forms > TextBox
http://homepage1.nifty.com/rucio/main/dotnet/ClassLibrary/L006_System.Windows.Forms.TextBox.htm
4.テキストの操作 > 4-3.複数行の制御
が参考になると思います。

MSDN: TextBoxBase.Lines プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.lines(VS.80).aspx


1行目だけ飛ばすのは,以降ならばSkip拡張メソッドで一発なのですが,
だとList(Of String)に配列を突っ込んで,最初の要素を削除するか,
そもそもループの開始の値を1にすることで0番目の要素を読み飛ばすとか,
そういった方法になると思います。
投稿者 shu  (社会人) 投稿日時 2011/7/2 09:19:14
Textだけ使うなら

        Dim Src As String = TextBox1.Text
        Dim Idx As Integer = Src.IndexOf(Environment.NewLine)
        Dim FirstLine As String
        Dim Des As String

        If Idx < 0 Then
            FirstLine = Src
            Des = ""
        Else
            FirstLine = Src.Substring(0, Idx)
            Des = Src.Substring(Idx + Environment.NewLine.Length)
        End If

FirstLine に1行目
Desに2行目からの文字列が入ります
投稿者 太一  (社会人) 投稿日時 2011/7/3 02:07:02
YuOさん、有り難うございます。

Linesプロパティ、勉強します。
やはり、VBのバージョンは上がるほど便利になっているのですね。





shuさん、有り難うございます。

バッチリでした。
おかげでやりたい事が出来ました。
Substringというものを初めて知りました。

こんな事も出来るのですね。

有り難うございます。