締切済み

C# Enterキーの動作について

  • すぐに回答を!
  • 質問No.8651681
  • 閲覧数1105
  • ありがとう数10
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 48% (91/187)

お世話になります。

VC#2010にて、フォームにボタンを配置し、そのボタンに
フォーカスがあるときにEnterキーを押下すると、そのボタンが
押されたことになってしまいますが、これをさせない方法は
ありますでしょうか。

Enterキーは、フォーム側でKeyDown(KeyPress?)処理で
別に行いたいので、押下として反応してしまうと、KeyDownに
処理が飛ばなくなってしまいます。

それを回避する方法です。

何卒よろしくお願いいたします。

回答 (全1件)

  • 回答No.1

ベストアンサー率 44% (363/813)

フォームのKeyPreviewプロパティで対応できるのでは?

KeyPressなどのキーイベントをすべてフォームが受け取るようにする
http://dobon.net/vb/dotnet/form/keypreview.html

さらに、キーがEnterだったら、処理をフォームのイベントで終わらせることも出来る

Form1_KeyDown()の中で
  If e.KeyCode <> Keys.Enter Then
    e.Handled = True
  End If
とすれば、コントロール側にEnterキーのイベントが飛ばない。
補足コメント
tatapatank

お礼率 48% (91/187)

回答、ありがとうございます。

ご指摘のように、keypreviewもkeydownも修正していますが、
どうも『Enterキーでフォーカスのあるボタンをクリック』という
動きは、keydownとは別に処理されているようで、どうしても
実現できません。

強制的に、TextBoxなどの違うコントロールにFocusを
移せば、ひとまずは回避できますが、どうしても『ボタンが
フォーカスの状態にあった時に』という条件が満たせません。

結局のところ、フォーカス状態でのEnterキーは、Windowskの
動作で固定されてて、変更できないということなのでしょうか…。
投稿日時 - 2014-06-27 10:35:05
感謝経済、優待交換9月20日スタート
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ