tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
テキストボックスで行毎テキストの操作色々(VB.NET) ( No.21 )  [親スレッドへ]
日時: 2013/02/19 10:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,1行削除,1行挿入,1行書き換え,行を削除,行削除,行挿入     *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:046
投 稿 日:2013/02/19  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

1.テキストボックスの行数を取得する。
2.テキストボックスのデータを行毎に取得する。
3.テキストボックスの指定行のテキストを取得する。
4.テキストボックスの指定行のテキストを書き換える。
5.テキストボックスの指定行に1行テキストを追加する。
6.テキストボックスの指定行を削除する。(2題)

※ 処理速度等については、検証しておりませんし、目的によっては、他にもっと良い方法が
  あるかも知れません。(Lines プロパティ等の使用例として投稿)

'----------------------------------------------------------------------------------

Private Sub Button1_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button1.Click
'1.テキストボックスの行数を取得する。
   MessageBox.Show(TextBox1.Lines.Length.ToString)
End Sub


Private Sub Button2_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button2.Click
   '2.テキストボックスのデータを行毎に取得する。
   For Each txt As String In TextBox1.Lines
      Debug.Print(txt)
   Next

End Sub


Private Sub Button3_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button3.Click
   '3.テキストボックスの指定行のテキストを取得する。
   MessageBox.Show("3行目のデータ = " & TextBox1.Lines(2))
End Sub


Private Sub Button4_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button4.Click
   '4.テキストボックスの指定行のテキストを書き換える。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = "3 行目を書き換えました。"
   TextBox1.Lines = txtLines
End Sub


Private Sub Button5_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button5.Click
   '5.テキストボックスの指定行に1行テキストを追加する。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = "3行目に1行追加しました" & vbCrLf & TextBox1.Lines(2)
   TextBox1.Lines = txtLines
End Sub


Private Sub Button6_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button6.Click
   '6.テキストボックスの指定行を削除する。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = ""     '3行目のテキストを削除
   TextBox1.Lines = txtLines     '
   '3行目のデーターは、先頭に vbCrLf がはいっているのでその部分を選択
   TextBox1.Select(TextBox1.GetFirstCharIndexFromLine(2), 2)
   '選択されている vbCrLf を "" と置き換える(vbCrLf を 削除)
   TextBox1.SelectedText = ""

   '又は、

   '3行目の先頭から4行目の先頭までを選択して、"" と置き換える(範囲をかえれば何行でも)
   'こちらの方が色々簡単に応用ができそうです。
   Dim sLine As Integer = 2   '削除開始行
   Dim eLine As Integer = 3   '削除終了行
   TextBox1.Select(TextBox1.GetFirstCharIndexFromLine(sLine), _
      TextBox1.GetFirstCharIndexFromLine(eLine) - TextBox1.GetFirstCharIndexFromLine(sLine))
   TextBox1.SelectedText = ""

End Sub


'起動時の処理(複数行表示用のテキストボックスで10行程度なにか入力しておいて下さい)
Private Sub Form1_Load(sender As System.Object, _
                                 e As System.EventArgs) Handles MyBase.Load
   TextBox1.Text = "1 あいうえお"
   TextBox1.AppendText(vbCrLf & "2 かきくけこ")
   TextBox1.AppendText(vbCrLf & "3 さしすせそ")
   TextBox1.AppendText(vbCrLf & "4 たちつてと")
   TextBox1.AppendText(vbCrLf & "5 なにぬねの")

End Sub



 [スレッド一覧へ] [親スレッドへ]