電子書籍の厳選無料作品が豊富!

テキストボックスのKeyUpイベントにて『Enter』または『Tab』が押されたら処理をさせようと
Private Sub Text_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Text.KeyUp
If e.KeyCode = Keys.Enter or e.KeyCode = Keys.Tab Then
  処理コード
End If
End Sub
としたのですが『Enter』のときしか処理コードが反映されません
ご教授お願いします

A 回答 (2件)

TextBoxにTabキーの押し放しを認識させる方法は、フォームの全てのTabStop を False にする方法があります。

通常の動作である、Tabキーによるコントロールの移動が出来なくなり、犠牲は大きいです。

Tabキーによって次のコントロールにフォーカスが移ってしまうことを逆に利用して、TextBoxの次にフォーカスが移るダミー的なコントロールを配置する方法もあります。ダミーのコントロールにフォーカスが来たら、TextBoxでTabが押されたと判断することも、TextBoxにフォーカスを戻すこともできると思います。

あるいは、テキストボックスからフォーカスがはずれる直前のイベントを捕らえる方法もあります。Validatingイベントについて調べてみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます
まだまだ多くのイベントがあるんですね
調べて挑戦したいと思います。

お礼日時:2009/11/22 14:53

『Tab』が押された事を取得したいのなら、Win32 API 関数の GetKeyState を使って取得する事ができます。



又、ProcessCmdKeyメソッドをオーバーライドして、ProcessCmdKey内で
If keyData = Keys.Tab Then のようにして取得する事ができますが、
取得して、何をしたいのかによって、違った方法があるかも知れません。
回答する方にとっては、そちらの方が気になります。
詳しいコード等は、それぞれのメソッド名なり、関数名なりで検索すれば、見つかるかと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
コードの使用方法としてはログイン画面を作成してまして、
TEXT1にIDを入力して『Enter』または『Tab』が押されたら
TEXT2に処理(検索)後、指名を表示といった動きにさせたいのです。
まだまだ素人なのでわからないことだらけです。
日々努力していきたいと思います

お礼日時:2009/11/22 14:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!