玄関へお回り下さい。
Enter キーの入力で次のコントロールにフォーカスを移動(簡易型) (4個) (SNo.042)

1.Control.Focus メソッド を使った方法
2.Control.Enabled プロパティ を使った方法
3.Control.SelectNextControl メソッド を使った方法
4.SendKeys.Send メソッド を使った方法(Shift + Enter で逆方向に移動)
使用コントロール TextBox を数個
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
1.Control.Focus メソッド を使った方法

Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox1.KeyPress
'Control.Focus メソッド を使った方法
   
If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then 'Enter キーが押された事を取得
        e.Handled = 
True    'KeyPress イベントをキャンセル(Beep 音を消音に)
        TextBox2.Focus()   
'TextBox2 に入力フォーカスを設定
   
End If
End Sub

Private Sub TextBox2_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox2.KeyPress
   
If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
        e.Handled = 
True
        TextBox3.Focus()
   
End If
End Sub

2.Control.Enabled プロパティ を使った方法

Private Sub TextBox5_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox5.KeyPress
'Control.Enabled プロパティ を使った方法 
   
If e.KeyChar = Chr(Keys.Enter) Then
        e.Handled = 
True    'Beep 音を消音に
        TextBox5.Enabled = 
False
        TextBox5.Enabled = 
True
   
End If
End Sub

Private Sub TextBox6_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox6.KeyPress
   
If e.KeyChar = Chr(Keys.Enter) Then
        e.Handled = 
True    'Beep 音を消音に
        TextBox6.Enabled = 
False
        TextBox6.Enabled = 
True
   
End If
End Sub

3.Control.SelectNextControl メソッド を使った方法

Private Sub TextBox9_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox9.KeyPress
'Control.SelectNextControl メソッド を使った方法
   
If e.KeyChar = Chr(Keys.Enter) Then
       
Me.SelectNextControl(sender, TrueTrueTrueTrue)
        e.Handled = 
True
   
End If
End Sub

Private Sub TextBox10_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) 
Handles TextBox10.KeyPress
   
If e.KeyChar = Chr(Keys.Enter) Then
       
Me.SelectNextControl(sender, TrueTrueTrueTrue)
        e.Handled = 
True
   
End If
End Sub

4.SendKeys.Send メソッド を使った方法(Shift + Enter で逆方向に移動)

Private Sub TextBox13_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) Handles TextBox13.KeyPress
'SendKeys.Send メソッド を使った方法(Shift + Enter で逆方向に移動)
    If e.KeyChar = Chr(Keys.Enter) Then
        e.Handled = True
        SendKeys.Send(Constants.vbTab)  'タブキーを送信する
    End If
End Sub

Private Sub TextBox14_KeyPress(ByVal sender As ObjectByVal e As _
                System.Windows.Forms.KeyPressEventArgs) Handles TextBox14.KeyPress
    If e.KeyChar = Chr(Keys.Enter) Then
        e.Handled = True
        SendKeys.Send(Constants.vbTab)
    End If
End Sub

VB5.0の頃、よく使用されていた方法です。VB6.0の頃は、SendKeys に色々問題があって使われなくなったのですが、.NETでは、そのような事がないようなので試してみました。
Shift + Enter で逆方向に進みます

又、下記サンプル投稿用掲示板の方にも最新版を投稿しております。
 http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=334&no=18




2004/08/22
2005/09/20
2013/02/17


VBレスキュー(花ちゃん)
VB.NET2003  VB2005