- 日時: 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
|