テキストボックスでのフォーカス移動時の操作色々(6個) (SNo.040) 1.テキストボックスにフォーカスが移った時、すべてのテキストを選択状態にする 2.テキストボックスにフォーカスが移った時、3桁目から5文字選択状態にする 3.テキストボックスにフォーカスが移った時、文字列の後尾に移動する 4.テキストボックスにフォーカスが移った時、指定の文字を選択状態にする 5.テキストボックスにフォーカスが移った時、背景色と前景色を設定する(視覚化する) 6.テキストボックスで選択した文字を取得する 7.テキストボックスでフォーカスが移動しても選択されている |
|
使用コントロール | TextBox1 〜 TextBox6 Button1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.テキストボックスにフォーカスが移った時、すべてのテキストを選択状態にする
Private Sub TextBox1_Enter(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.Enter ''テキスト ボックスのすべてのテキストを選択する TextBox1.SelectAll() End Sub |
|
2.テキストボックスにフォーカスが移った時、3桁目から5文字選択状態にする Private Sub TextBox2_Enter(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles TextBox2.Enter ''3桁目から5文字選択する TextBox2.Select(2, 5) '又は 'TextBox2.SelectionStart = 2 'TextBox2.SelectionLength = 5 End Sub |
|
3.テキストボックスにフォーカスが移った時、文字列の後尾に移動する Private Sub TextBox4_Enter(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox4.Enter ''文字列の後尾に移動する TextBox4.SelectionStart = TextBox4.TextLength End Sub |
|
4.テキストボックスにフォーカスが移った時、指定の文字を選択状態にする Private Sub TextBox5_Enter(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox5.Enter ''指定の文字を選択状態にする Dim target As String = "かき" '指定した文字がこのインスタンス内で最初に見つかった位置を取得 Dim findPos As Integer = TextBox5.Text.IndexOf(target) If findPos > -1 Then '見つかった場合の処理 TextBox5.Select(findPos, target.Length) Else '見つからなかった場合の処理 TextBox5.SelectionStart = TextBox5.TextLength End If End Sub |
|
5.テキストボックスにフォーカスが移った時、背景色と前景色を設定する Private Sub TextBox6_Enter(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox6.Enter ''背景色と前景色を設定する With TextBox6 .SelectionStart = .TextLength '選択状態にならないように .BackColor = Color.Yellow .ForeColor = Color.Red End With End Sub Private Sub TextBox6_Leave(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles TextBox6.Leave ''背景色と前景色を元に戻す TextBox6.BackColor = Color.FromKnownColor(System.Drawing.KnownColor.Window) TextBox6.ForeColor = Color.FromKnownColor(System.Drawing.KnownColor.WindowText) End Sub |
|
6.テキストボックスで選択した文字を取得する Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click '選択した文字を取得 MessageBox.Show(TextBox3.SelectedText) End Sub |
|
7.テキストボックスでフォーカスが移動しても選択されている 別途、テキストボックスのちょっと便利な主要プロパティの使用例 でも紹介しております Private Sub TextBox3_Enter(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles TextBox3.Enter 'フォーカスが移動しても選択されているテキストが強調表示されたままにしておく TextBox3.HideSelection = False End Sub |
|
こういった場合、VB6.0の時は、GotFocus及びLostFocusイベントを使用していましたが、.NETでは替わりに、Enter及びLeaveイベントを使用するそうです。 尚、フォーカスイベントは次の順序で発生します。 1.Enter 2.GotFocus 3.Leave 4.Validating 5.Validated 6.LostFocus 詳しくは、ヘルプでControl.GotFocus イベントについて調べて見て下さい。 |