• 締切済み

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

お世話になります。 VC#2010にて、フォームにボタンを配置し、そのボタンに フォーカスがあるときにEnterキーを押下すると、そのボタンが 押されたことになってしまいますが、これをさせない方法は ありますでしょうか。 Enterキーは、フォーム側でKeyDown(KeyPress?)処理で 別に行いたいので、押下として反応してしまうと、KeyDownに 処理が飛ばなくなってしまいます。 それを回避する方法です。 何卒よろしくお願いいたします。

みんなの回答

回答No.1

フォームの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
質問者

補足

回答、ありがとうございます。 ご指摘のように、keypreviewもkeydownも修正していますが、 どうも『Enterキーでフォーカスのあるボタンをクリック』という 動きは、keydownとは別に処理されているようで、どうしても 実現できません。 強制的に、TextBoxなどの違うコントロールにFocusを 移せば、ひとまずは回避できますが、どうしても『ボタンが フォーカスの状態にあった時に』という条件が満たせません。 結局のところ、フォーカス状態でのEnterキーは、Windowskの 動作で固定されてて、変更できないということなのでしょうか…。

関連するQ&A

  • ENTERキー押下でフォームを送信したいのに・・・

    PHPとHTMLでフォームをいくつか作り、画像タイプの送信ボタンを押下すると送信されるようにしています。ところが、IEの場合、ENTERキー押下で送信できる(下記のPHPの制御文がtrueになる)ものと、できないものがあります。ボタンをクリックすればいずれも送信できます。また、FirefoxではどのケースでもEnterキー押下で送信できます。送信ボタンはどのフォームでもひとつです。 何がどういう場合に、IEでEnterで送信できないのでしょうか? ○HTML側 <form...> ... <input type="image" name="submit" ...> </form> ○PHP側 if(isset($_POST['submit_x']) { ... }

    • 締切済み
    • PHP
  • Enterキークリック時の動作について

    VB.NETでWEBプログラムを作成しています。 その際に、検索項目を入力する複数のテキストボックスと、 検索を実行する検索ボタンを配置して、検索フォームを作成しました。 検索はEnterキーからも実行出来るようにしたいのですが、 実際にEnterキーを押すと、上に配置しているメニューボタンがクリックされてしまいます。 フレームを使用し、メニューボタンを常に表示している為とおもわれますが、Enterキーを押した時に検索ボタンクリック時の処理を走らせる 方法はありませんか? どなたかご教授願います。

  • ユーザコントロールでのEnterキータブ移動

    開発言語:VS2008・C# VS2008・C#で郵便番号や電話番号を入力できるユーザコントロールを作成しています。 入力フィールドはTEXTBOX、区切り文字はLABELで、 郵便番号なら3桁 + 区切り文字(-) + 4桁 電話番号なら3桁 + 区切り文字(-) + 4桁 + 区切り文字(-) + 4桁 といった感じで、プロパティで設定された値により、動的に入力フィールドのTEXTBOXを作成しています。 上記のユーザコントロールをフォームに配置し、ENTERキーでフォーカスを移動させたいのですが、現時点で、ユーザコントロール内のTEXTBOXでENTERを押した場合フォーカスはユーザコントロール内の次のTEXTBOXに移動するのですが、最後のTEXTBOXでENTERキーを押した場合ユーザコントロールからフォーカスが移動しなくなってしまいます。 例)住所フィールド(TEXTBOX)→ENTER押下→郵便番号(ユーザコントロール)の上3桁フィールド→ENTER押下→郵便番号(ユーザコントロール)の下4桁フィールド→ENTER押下(フォーカスが次のコントロールに移動しない) ユーザコントロール内のENTERキー移動はKeyDownイベントに関連付け行っていますが、これだとユーザコントロール内しかENTERでフォーカスが移動せずフォーム上の次のコントロールにフォーカスが移動しません。 どなたか、ENTERキーでユーザコントロールからフォーカスが移動できる方法を教えてください。

  • エディットでEnterキーでのTAB移動

    Win32APIを使ってプログラミングしています。 通常はTABでフォーカスを移動するのが良いと思うのですが、Enterキーで移動させたいと思います。 ところが、一行のエディットだとEnterキーを押すとビープ音が鳴ってしまいます。 フォーカス移動はできるのですが、ビープ音を鳴らないようにするにはどうすればいいのでしょう? 多分WM_KEYDOWNかWM_KEYUP、WM_CHARのどれかで書けばいいと思ってるんですが… よろしくお願いします。

  • [Enter]エンターキーでカーソル移動する方法

    プログラム(VB.NET)初心者です。 どうぞよろしくお願いします。 フォームに複数のテキストボックスを配置しているのですが、 タブで次のテキストにフォーカスが移動するように [Enter]キー押下時もフォーカスを次のテキストに移動させたいのです。 色々試してみたものの、なかなかうまくいきません(><) どなたか、わかる方教えていただけたら幸いです。 サンプルソースがあると嬉しいです。 申し訳ありませんが、宜しくお願いします。

  • Enterキーを使わずにBIOS初期化はできますか?

    シャープのノートPC PC-MV1-VC1 Enterキーが反応しなくなりました。 起動時に 0210: stuck key のエラーがでます。 BIOSの初期化をしてみようと思ったのですが Enterキーが反応しないので、どうしたらいいか困っています。 Enterキーを使わずにBIOSの初期化をする方法はありますか? よろしくお願いします。

  • ホームページ内でEnterキー押下時にフォーカスを移動したい

    イントラネットでホームページの管理をしています。 個人認証画面にてユーザー→パスワードを入力してもらい、認証ボタンを押してメインページへ飛ぶ画面があります。 ユーザー入力後にEnterキー押下でパスワードへ、 パスワード入力後にEnterキー押下で認証ボタンへ それぞれフォーカスを移動したいのですが、実現方法がわかりません。 javascriptでfocus()及びblur()を使えばと思いましたが、キー入力イベントの取得方法がわかりません。 ページ先頭にてdocument.onkeydownから取得する方法だと初回のみの取得しか出来ませんでした。 それぞれのオブジェクトでキー入力のイベント判定をしてフォーカスを移動する方法があれば教えてください。 OS :WIN2K ブラウザ:NetScape4.0 PG :HTML(ASP,VBScript,JavaScript)

  • Enterキー入力後の動作について

    Enterキー入力後の動作についてお伺いします。よろしくお願いします。 特定のコントロールがフォーカスを取得したときにのみ、Enterキー入力後の動作を「移動しない」に変更したいのです。(ちなみに特定コントロール以外がコントロールを取得した場合は「次のフィールド」としたいです。) もし特定コントロールフォーカス取得時が困難であれば、特定のmdbにのみEnterキー入力後の動作を「移動しない」を適用したいのです。 VBAはある程度理解しています。 解決方法をご教授ください。よろしくお願いします。

  • keypressイベントでEnterキー(ascii=13)が認識できない

    VB6、Win2000で開発中です。 単純にkeypressイベントでEnterキーが認識できません。(特定のフォームのすべてのTextBoxでそうなります。)Enterキー以外のキーは認識してkeyasciiにアスキーコードが代入されるのですが、Enterキーだけ代入されません。複数のフォームがあって特定のフォームだけ認識しないのですが、まったく原因がわからず困っています。

  • ENTERキーでフォーカスを移動したい

    VB6で、ENTERキーでフォーカスを移動できるようにしたいのですが、普通にコントロールのkey_Up、Down,Pressで処理した場合、日本語入力だと文字確定でENTERを押した時にフォーカスが飛んでしまい、使い勝手が良くありません。 解決策、または他に簡単に実現できる方法がありましたらアドバイスをお願いします。

専門家に質問してみよう