昨日の続きで、試験で使用するソースについてメモ。 基本的にフォーカスを遷移する際にはTABを使うので、 遷移順位を付ける「タブオーダー」で並べ替えておきます。 ですが、一つの画面で複数の項目を素早く入力する場合には、 入力後の「Enter」で次のテキストボックスやボタンに遷移しておくべきです。 というわけで、その為のソースです。 2通りの方法がありますが、好きな方を選ぶと良いと思います。 1つ目:「KeyDown」での取得・遷移。「KeyDown」時に「どのキーが押されたか」をチェックします。 「Keys.Enter」で無くとも、Enterのキーコードである「13」でも可能です。 2つ目:「KeyPress」での取得・遷移。01.
' ******************************************************
02.
' Enter時フォーカス遷移 / KeyDown
03.
' ******************************************************
04.
Private
Sub
TextBox1_KeyDown(
ByVal
sender
As
System.
Object
, _
05.
ByVal
e
As
System.Windows.Forms.KeyEventArgs) _
06.
Handles
TextBox1.KeyDown
07.
08.
' Enterの場合
09.
If
e.KeyCode = Keys.Enter
Then
10.
11.
' ビープ音を鳴らさないようにする
12.
e.SuppressKeyPress =
True
13.
' 次のTextBoxへフォーカスを当てる
14.
Me
.TextBox2.Focus()
15.
16.
End
If
17.
18.
End
Sub
「KeyPress」時に「押されたキーはどれか」をチェックします。 「Chr(Keys.Enter)」は、 Chr関数によって「Keys.Enter」をそのまま「Enter」として返しています。01.
' ******************************************************
02.
' Enter時フォーカス遷移 / KeyPress
03.
' ******************************************************
04.
Private
Sub
TextBox2_KeyPress(
ByVal
sender
As
System.
Object
, _
05.
ByVal
e
As
System.Windows.Forms.KeyPressEventArgs) _
06.
Handles
TextBox2.KeyPress
07.
08.
' Enterの場合
09.
If
e.KeyChar = Chr(Keys.Enter)
Then
10.
11.
' ビープ音を鳴らさないようにする
12.
e.Handled =
True
13.
' 次のTextBoxへフォーカスを当てる
14.
Me
.TextBox1.Focus()
15.
16.
End
If
17.
18.
End
Sub
ホーム > テクニック集 > VB.NET Enter時フォーカス遷移
0 件のコメント:
コメントを投稿