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 Object, ByVal 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 Object, ByVal 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 Object, ByVal 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 Object, ByVal 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 Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox9.KeyPress 'Control.SelectNextControl メソッド を使った方法 If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(sender, True, True, True, True) e.Handled = True End If End Sub Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(sender, True, True, True, True) e.Handled = True End If End Sub |
|
4.SendKeys.Send メソッド を使った方法(Shift + Enter で逆方向に移動) Private Sub TextBox13_KeyPress(ByVal sender As Object, ByVal 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 Object, ByVal 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 |