VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 TextBox コントロール関係のメニュー
1.TextBox コントロールに関するワンポイントテクニック集
2.TextBox コントロールへのフォーカス移動時の操作色々
3.TextBox でコピー・貼り付け・切り取り・元に戻す他 
4.Enter キー及び↑↓キーによるフォーカス移動 
5.TextBox で数値しか入力できないように制限する
6.TextBox における総行数・現在行・現在桁の取得
7.TextBox で行毎テキストの操作色々
8.テキスト中に異種文字が混在していないかを調べる
9.テキストファイルを読み込み TextBox に表示及び保存
10.TextBox のテキストを複数ページにわたっての印刷
11.
12.
 . 
20.その他、当サイト内に掲載の TextBox コントロールに関するサンプル 


1.TextBox コントロールに関するワンポイントテクニック集(23_Txt_01) (旧、SampleNo.047)
1 .TextBox で Tab キーを押した場合タブ(空白)を入力できるようにする(AcceptsTab プロパティ)
2 .TextBox のテキストの末尾に追加書き込みをする(AppendText メソッド)
3 .TextBox の背景色及び前景色を設定する(BackColor プロパティ / ForeColor プロパティ )
4 .TextBox に入力された文字を大文字又は小文字に変換する(CharacterCasing プロパティ)
5 .TextBox からすべてのテキストを削除する(Clear メソッド)
6 .指定の TextBox にフォーカスを設定する(Focus メソッド)
7 .TextBox でフォーカスが移動しても強調表示のままにしておく(HideSelection プロパティ)
8 .複数行表示の TextBox のテキストの行数を取得する(Lines プロパティ)
9 .TextBox に入力又は貼り付けできる最大文字数を設定する(MaxLength プロパティ)
10.TextBox の内容が変更されたかどうかを取得する(Modified プロパティ)
11.TextBox で複数行の入力ができるように設定する(Multiline プロパティ)
12.TextBox をパスワード入力用に設定する(PasswordChar/UseSystemPasswordChar プロパティ)
13.TextBox を読み取り専用にする(ReadOnly プロパティ)
14.TextBox で現在選択されているテキストを取得又は、他の文字列に置き換える(SelectedText プロパティ)
15.現在のキャレット(カーソル)の位置を取得する(SelectionStart / SelectionLength プロパティ)
16.TextBox のテキストを中央に配置・左側に配置・右側に配置する(TextAlign プロパティ)
17.複数行 TextBox で自動的に次の行に折り返す(WordWrap プロパティ)
18.TextBox で IME モードを設定する
19.
20.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :このページの Tips は、TextBox のプロパティまたは、メソッドを使った1行 Tips を主体に掲載しております。
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.TextBox で Tab キーを押した場合タブ(空白)を入力できるようにする

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'01.TextBox で Tab キーを押した場合タブ(空白)を入力できるようにする(AcceptsTab プロパティ)
    TextBox2.Multiline = True       'こちらも True でないと有効にならない。
    TextBox2.AcceptsTab = True      '既定値は、false です
    TextBox2.Focus()
End Sub

TextBox で Tab キーを押した場合タブ(空白)を入力できるようにするには、Multiline プロパティも True に設定する必要があります。
AcceptsTab = True の場合、次のコントロールにフォーカスを移動する場合は Ctrl キーを押しながら Tab キーを押す必要があります。

このページのトップへ移動します。 2.TextBox のテキストの末尾に追加書き込みをする

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'02.TextBox のテキストの末尾に追加書き込みをする(AppendText メソッド)
    TextBox1.Text = "あいうえお"

    'VB6.0 では、下記のように方法でした
    TextBox1.Text = TextBox1.Text & "ABCD"

    'それを .NET 風に書くと下記のようになる
    TextBox1.Text &= "EFGH"

    'AppendText メソッドを使用すると同様の処理ができる
    TextBox1.AppendText("IJKLM")    '結果 あいうえおABCDEFGHIJKLM と表示される
End Sub

結果としては、どれも同じですが、多くの連結が必要な場合には、AppendText メソッドを使用した方がパフォーマンス的には優れているようです。

余談ですが、文字列の連結演算子として + 演算子を使っておられるのをよくみかけますが、他の言語は知りませんが、
Visual Basic では、& 演算子を使用し、+ 演算子は、2 つの数を加算するような場合に使用するように使い分けるべきかと考えます。

このページのトップへ移動します。 3.TextBox の背景色及び前景色を設定する

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'03.TextBox の背景色及び前景色を設定する(BackColor プロパティ / ForeColor プロパティ )
    TextBox1.BackColor = Color.Yellow
    TextBox1.ForeColor = Color.Red
End Sub

このページのトップへ移動します。 4.TextBox に入力された文字を大文字又は小文字に変換する

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
'04.TextBox に入力された文字を大文字又は小文字に変換する(CharacterCasing プロパティ)
    TextBox1.Text = "ABCDEFあいうえおghijkl"

    If TextBox1.CharacterCasing = CharacterCasing.Lower Then
        TextBox1.CharacterCasing = CharacterCasing.Upper    '結果 ABCDEFあいうえおGHIJKL
    Else
        TextBox1.CharacterCasing = CharacterCasing.Lower    '結果 abcdefあいうえおghijkl
    End If
End Sub

このページのトップへ移動します。 5.TextBox からすべてのテキストを削除する

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
'05.TextBox からすべてのテキストを削除する(Clear メソッド)
    'VB6.0 や VBA には Clear メソッドがないので下記のように空文字を代入する事で消去していましたが
    TextBox1.Text = ""

    '.NET 系では、Clear メソッドが追加されたのでそれを使います。
    TextBox2.Clear()
End Sub

このページのトップへ移動します。 6.指定の TextBox にフォーカスを設定する

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
'06.指定の TextBox にフォーカスを設定する(Focus メソッド)
    TextBox1.Focus()

    'VB6.0 や VBA では下記のようになります
    'Text1.SetFocus
End Sub

このページのトップへ移動します。 7.TextBox でフォーカスが移動しても強調表示のままにしておく

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
'07.TextBox でフォーカスが移動しても強調表示のままにしておく(HideSelection プロパティ)
    'フォーカスを失っても、強調表示されたままの場合は False です。 
    TextBox1.HideSelection = False '既定値は、True です(勘違いしやすいので注意)

    TextBox1.Text &= "あいうえお"
    TextBox1.SelectAll()
    TextBox2.Focus()
End Sub

このページのトップへ移動します。 8.複数行表示の TextBox のテキストの行数を取得する

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
'08.複数行表示の TextBox のテキストの行数を取得する(Lines プロパティ)
    TextBox2.Multiline = True  'Multiline = True に設定されている事
    'テキストファイルを現在のエンコード(シフトJIS)で開く
    Using sr As New System.IO.StreamReader("..\..\..\data\test.txt", System.Text.Encoding.Default)
        'TextBox に読込み表示
        TextBox2.Text = sr.ReadToEnd
    End Using

'------- ここからが本題 --------------------
    MessageBox.Show("TextBox2.Lines = " & TextBox2.Lines.Count)
    'または
    MessageBox.Show("TextBox2.Lines = " & TextBox2.Lines.Length)
End Sub

このページのトップへ移動します。 9.TextBox に入力又は貼り付けできる最大文字数を設定する

Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
'09.TextBox に入力又は貼り付けできる最大文字数を設定する(MaxLength プロパティ)
    '入力文字数の Max を10文字に制限する
    TextBox1.MaxLength = 10

    '下記のようにプログラムからなら入力できる
    TextBox1.Text = "1234567890123456"
End Sub

このページのトップへ移動します。 10.TextBox の内容が変更されたかどうかを取得する

Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
'10.TextBox の内容が変更されたかどうかを取得する(Modified プロパティ)
    'コントロールが作成されてから、またはコントロールが最後に設定されてから、
    '【ユーザー】が TextBox コントロールを変更したかどうかを示す値を取得または設定します。
    If TextBox1.Modified Then
        MessageBox.Show("文字列が変更されました。")
    Else
        MessageBox.Show("文字列は変更されていません。")
    End If
End Sub

このページのトップへ移動します。 11.TextBox で複数行の入力ができるように設定する

Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
'11.TextBox で複数行の入力ができるように設定する(Multiline プロパティ)
    TextBox2.Multiline = True
End Sub

このページのトップへ移動します。 12.TextBox をパスワード入力用に設定する

Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
'12.TextBox をパスワード入力用に設定する(PasswordChar/UseSystemPasswordChar プロパティ)
    TextBox1.Text = "myPassword"
    'クリック毎に True / False を切り替えています。
    'TextBox コントロール内のテキストを既定のパスワード文字として表示するかどうかを示す値を取得または設定します。
    'UseSystemPasswordChar プロパティは、PasswordChar プロパティよりも優先されます。
    'UseSystemPasswordChar プロパティは、複数行 TextBox では使用できません。
    'VB2005 以降で追加されたようですが試した限りでは、特筆すべき利点が見当たりません。
    TextBox1.UseSystemPasswordChar = Not TextBox1.UseSystemPasswordChar

    '又は、

    'TextBox コントロール内のテキストを既定のパスワード文字として表示するかどうかを示す値を取得または設定します。
    TextBox1.PasswordChar = CChar("*")

    '標準の状態に戻す場合(MSDN では、マスクしない場合は、このプロパティの値を 0 (文字値)
    '             に設定します。既定値も 0 (文字値) です。と書いていますが)
    'TextBox1.PasswordChar = CChar(vbNullString)

    '読み取る時は、普通の場合と同様にプログラムから読み取る事ができます。
    MessageBox.Show("TextBox1.Text = " & TextBox1.Text)
End Sub

このページのトップへ移動します。 13.TextBox を読み取り専用にする

Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
'13.TextBox を読み取り専用にする(ReadOnly プロパティ)
    TextBox1.Text = "あいうえお"

    'true に設定されている場合、ユーザーは実行時にコントロールの内容を変更できません。
    TextBox1.ReadOnly = True

    'true に設定されていても、コードでは Text プロパティの値を設定できます。
    TextBox1.Text = "かきくけこ"
End Sub

このページのトップへ移動します。 14.TextBox で現在選択されているテキストを取得又は、他の文字列に置き換える

Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
'14.TextBox で現在選択されているテキストを取得又は、他の文字列に置き換える(SelectedText プロパティ)
    TextBox1.ReadOnly = False   '上記の設定を解除しているだけで関係ありません。
    TextBox1.Text = "TextBox2 上の文字列を選択してから実行して下さい。"
'------------------------------------------------------------------------------
    '選択した文字を取得する場合
    MessageBox.Show(TextBox2.SelectedText)

    '選択した文字を他の文字に置き換える場合。
    TextBox2.SelectedText = "置換文字"
End Sub

このページのトップへ移動します。 15.現在のキャレット(カーソル)の位置を取得する

Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
'15.現在のキャレット(カーソル)の位置を取得する(SelectionStart / SelectionLength プロパティ)

    TextBox2.HideSelection = False  '必須ではありませんが、解りやすいように。
    Dim cPos As Integer = TextBox2.SelectionStart + TextBox2.SelectionLength
    MessageBox.Show("現在のキャレットの位置は、" & cPos & " 文字目にあります。")
End Sub

このページのトップへ移動します。 16.TextBox のテキストを中央に配置・左側に配置・右側に配置する

Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
'16.TextBox のテキストを中央に配置・左側に配置・右側に配置する(TextAlign プロパティ)
    TextBox1.Text = "あいうえお"
    TextBox1.TextAlign = HorizontalAlignment.Left
    MessageBox.Show("")
    TextBox1.TextAlign = HorizontalAlignment.Center
    MessageBox.Show("")
    TextBox1.TextAlign = HorizontalAlignment.Right
End Sub

このページのトップへ移動します。 17.複数行 TextBox で自動的に次の行に折り返す

Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
'17.複数行 TextBox で自動的に次の行に折り返す(WordWrap プロパティ)
    Me.Width = 200
    TextBox2.Multiline = True

    TextBox2.WordWrap = True   '既定値は、true です。
    TextBox2.Text = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろ"

    MessageBox.Show("")
    TextBox2.WordWrap = False   '既定値は、true です。
End Sub

このページのトップへ移動します。 18.TextBox で IME モードを設定する

Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
'VB6.0 と同様に ImeMode プロパティで設定します。設定値については、ImeMode 列挙体をご覧下さい。
    TextBox1.ImeMode = Windows.Forms.ImeMode.Hiragana
End Sub

このページのトップへ移動します。 19.


このページのトップへ移動します。 20.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
テキストボックス テキストボックス




このページのトップへ移動します。