DOBON.NET DOBON.NETプログラミング掲示板過去ログ

KeyDown時のEnterキーの取得

環境/言語:[VB.NET]
分類:[.NET]

非常に悩んでおります。。。
以下のようなイベントでEnterキーの取得をしてくれません。
ただ、取得できるフォームもあります。なぜでしょうか?
いろいろ調べましたが、実力が追いついておらずわかりませんでした。

Private Sub txtText_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtText.KeyDown

If e.KeyCode = System.Windows.Forms.Keys.Return Then
Exit Sub
End If

End Sub

※フォームのKeyPreview=Trueです。
イニさんこんばんわ。

理由は良くわかりませんが、イベントを取得してくれないときの、
e.KeyCodeを表示させてみて、
そのときの差を確認してみてはいかがでしょうか?
さっそくありがとうございます。
テキストボックスのKeyDown及び、フォームのKeyDownのイベントがEnterキーを押しても実行されません。
■No5186に返信(イニさんの記事)
> さっそくありがとうございます。
> テキストボックスのKeyDown及び、フォームのKeyDownのイベントがEnterキーを押しても実行されません。

イニさん始めまして。
初心者の平ちゃんです。
不思議だなと思いましてイニさんのコードで確認しましたら問題なく動作している気がします?
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = System.Windows.Forms.Keys.Return Then
Exit Sub
End If
End Sub
ひょっとして独自でイベントコードを書いてイベントが発生してないかも?
間違っていたらすみません。
プロパティを見直してもわかりません。
Enter,Tabなどはイベントが発生しません。
うーん。。。困った。
■No5188に返信(イニさんの記事)
> プロパティを見直してもわかりません。
> Enter,Tabなどはイベントが発生しません。
> うーん。。。困った。
まず確認したいのは、KeyDownイベントが発生しているかどうか…
発生しているのであれば、他に問題がありそうです。
ですが、発生していないのであれば、恐らく、別のところでKeyDownイベントが発生している可能性があります。
その辺りをもう一度確認してみてください。
それによって解決方法が変わります。
■No5189に返信(ぺがらぼさんの記事)
> ■No5188に返信(イニさんの記事)
>>プロパティを見直してもわかりません。
>>Enter,Tabなどはイベントが発生しません。

実験したところ
Tabはイベントが発生しません。
Enter はフォームのAcceptButtonプロパティにButton が割り付けられていると
イベントが発生しないですね。この辺ではないですか?
AcceptButtonプロパティはなしになっています。
KeyDownイベントはEnter以外、数字とか文字入力は発生しています。
■No5194に返信(イニさんの記事)
> AcceptButtonプロパティはなしになっています。
> KeyDownイベントはEnter以外、数字とか文字入力は発生しています。

ぺがらぼさんの記事にありましたように他のイベントプロシジャーでイベントが発生しているかもしれません。
これを確認するには全てのイベントプロシジャーの End Sub にブレークポイントを設定し Enter キーでのイベントを追跡します。
がんばってください。
> これを確認するには全てのイベントプロシジャーの End Sub にブレークポイントを設定し Enter キーでのイベントを追跡します。

やってみました!
なぜか、Enter入力時にコマンドボタンのイベントが走りました。
最初にフォーカスがあるコントロールのようです。

そういう方法があったとは無知でした。

DOBON.NET | プログラミング道 | プログラミング掲示板