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 コントロールに関するサンプル 


4.Enter キー及び↑↓キーによるフォーカス移動(23_Txt_04) (旧、SampleNo.043)
1.Enter キー及びカーソル移動(↑↓)キーによるフォーカス移動
2.
3.
4.
5.
6.

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

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '別途 Form1のプロパティで設定してもOKです。
    Me.KeyPreview = True
End Sub

Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyBase.KeyPress
    'Enterキーが押された事を取得()
    If e.KeyChar = Chr(Keys.Enter) Then
        e.Handled = True  'KeyPress イベントをキャンセル(Beep音を消音に)
    End If
End Sub

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    'Button コントロール上で発生したイベント分は無視する
    If butEnter = True Then
        butEnter = False
        e.Handled = True
        Exit Sub
    End If

    If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
        '除外したい TextBox がある場合
        'If Me.ActiveControl.Name = "TextBox5" Then Exit Sub

        'TextBox だけに限定する場合
        'If TypeOf (Me.ActiveControl) Is TextBox = False Then Exit Sub

        Dim sh As Boolean = e.Shift   ' ↓
        If e.KeyCode = Keys.Up Then   ' ↑
            sh = True
        End If
        'ProcessTabKey メソッド()
        '次に使用できるコントロールを選択し、そのコントロールをアクティブにします。
        ProcessTabKey(Not sh)
        e.Handled = True
    End If
End Sub

'Button コントロールも移動の対象に含める場合
Private butEnter As Boolean
Private Sub Button1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Button1.PreviewKeyDown
    If e.KeyCode = Keys.Enter Then
        e.IsInputKey = True     'Button1_Click イベントが発生しないようにする
        ProcessTabKey(Not e.Shift)

        '次のコントロール上で Enter イベントが発生するので、2個先に移動するのを防止するため
        butEnter = True       'e.Handled = True のような操作ができないので(下記でもいいのだが))
        ' ProcessTabKey(e.Shift)   '行き過ぎるので1個戻す
    End If
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Button1_Click イベントが発生しない事を確認のために。
    MessageBox.Show("Button1 が Click されました")
End Sub


  図1.上記実行結果
 vb2013textbox04_1
Enter キーによるフォーカス移動は、色々な方法がありますが、できるだけ色んな要望に対応できるようにと思い
上記のように色んなコントロールが配置されていても動作するように設定してみました。

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


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


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


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



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


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





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