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