tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
テキストボックスで Enter キーによるフォーカス移動(VB.NET) ( No.18 )  [親スレッドへ]
日時: 2013/02/17 17:51
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,フォーカス移動,Enterキー,エンターキー,                    *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:043
投 稿 日:2013/02/17  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

この手のサンプルは、色々の方法があり、WEB 上を検索すれば、色々みつかります。
当サイトでもいくつか掲載しております。
 http://www.hanatyan.sakura.ne.jp/dotnet/txtbox03.htm
 http://www.hanatyan.sakura.ne.jp/dotnet/txtbox10.htm

ご自分の使用目的、環境に合わせ最適の方法をご使用下さい。
(下記サンプルは、ご使用目的によっては、満足な動作をしない場合があるかも知れません。)

テキストボックスで Enter キーによるフォーカス移動
 Shift + Enter キーで、上方向移動にも対応
  ↑↓ キーでのフォーカス移動にも対応

'----------------------------------------------------------------------------------

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

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As  _
                System.Windows.Forms.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(ByVal sender As Object, ByVal e As  _
                System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

   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
      If e.Control = False Then
         Me.SelectNextControl(Me.ActiveControl, Not sh, True, True, True)
      End If

   End If

End Sub




 [スレッド一覧へ] [親スレッドへ]