- 日時: 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
|