ベストアンサー 矢印キーイベントの封印。 2003/09/04 20:01 フォームでの矢印の処理を行わないようにしたいのですが、KeyDownイベントでキーを取得できるものの矢印キーの機能自体は封印できません。なんとか矢印キーの動きを封印できないでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー taka_tetsu ベストアンサー率65% (1020/1553) 2003/09/04 21:14 回答No.1 サブクラス化して、矢印キーのときWM_KEYDOWNを元のプロシージャに渡さない。 質問者 お礼 2003/09/05 10:14 ありがとうございます。そういう方法もあったんですね。試してみます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Visual Basic 関連するQ&A KeyPressイベント こんにちは!! KeyPressイベントでBSキーとEnterキーのイベントを取得して、 いろいろな処理を書いているんですけど、 DelキーをBSキーと同じ処理、矢印キーをEnterキーと同じ処理にさせたいです。 それで質問なんですが、KeyPressイベントでDelキーと矢印キーのイベントを 取得する方法ってあるのでしょうか?? KeyDownかKeyUpイベントで取得するしかないのでしょうか?? ご存知の方がいらっしゃったら回答、よろしくお願いいたします。 JavaScriptのキーイベント JavaScriptのキーイベント いつもお世話になりますm(__)m Javascriptのキーイベントで教えて下さい。 フォーム上に、テキストボックス(id=A)とセレクトボックス1(id=B)と、セレクトボックス2(id=C)があるフォームがあり、フォーム内の項目移動をキーボードで行いたいと思います。 各項目のkeydownイベントでキーコードを取得して、Aの場合 Enter(13)又は→(39)なら、Bへ ←(37)なら、Cへ 移動するようにキーコードを取得して移動するようにしました。 IEだと問題なく動くのですが、Firefoxだと、矢印キーで移動した時に、移動先のセレクトボックスの値が ←で動いた場合、セレクトボックスの値が1つ前 →で動いた場合、セレクトボックスの値が1つ後 に変わってしまいます。 (フォーカスは問題なく移動先のセレクトボックスにあります) 移動した後(例えばB.focus()の後)に、まだキーイベントが残っていて、Bにフォーカス移動後に、→キーが押されたような状態っぽいのです。 Firefoxの場合、セレクトボックスにフォーカスがある時、キーボードの左右で値を変更できるので、その辺りが原因と思うのですが、移動時に左右矢印キーのイベントを無効(?)にする事はできないのでしょうか? 雑な書き方で申し訳ありませんが、お詳しい方、是非ともご教授下さいm(__)m 宜しくお願い致します。 チェックボックスのキーダウン時に矢印キーを検知する方法について チェックボックスのキーダウン時に矢印キーを検知する方法について VB6のチェックボックスについて質問させて頂きます。 環境 Windows 2000 SP4 Visual Basic 6.0(SP6) チェックボックスのキーダウン時に矢印キーを検知する方法について、ご存知の方がいらっしゃいましたら、ぜひ教えて頂きたいです。 自分なりに調べてみた結果は以下の通りです。 チェックボックスのKeyDownイベントでは矢印キーは検知できませんでした。 次に試したのが、サブクラス化を行い、WM_KEYDOWNを取得する方法です。 正直、サブクラス化を行えば矢印キーを確実に検知できると考えていたのですが、なぜか矢印キーを押してもWM_KEYDOWNメッセージを取得できず、このため矢印キーの検知ができませんでした。 矢印キー以外のキー、例えばAやSなどは問題なく検知できました。 ちなみに、この状態でSpy++を起動し、矢印キーを押したときのメッセージを確認してみると、チェックボックスウィンドウはきちんとWM_KEYDOWNを受け取っていました。 それなのにサブクラス化した方ではWM_KEYDOWNは取得できません。 まだ完全にサブクラス化の概念を理解している訳ではないため、恐らく何か原因があるのでしょうが、想像ができないでいます。 ( Windowsから送られるメッセージがチェックボックスウィンドウに届くまでの間に誰がメッセージを処理してるのかが分かりません。自分は間に何もないと考えていました )。 この動作についても知っている方がいたら、説明して頂けるととても助かります。 すいませんが、ご教授お願い致します。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム キーイベントを擬似的に発生させることは可能? JavaScriptのイベント処理で質問なのですが、 keydownなどのキーイベントを、実際にキーを押さずに擬似的に「このキーが押された」というイベントを発生させることは可能でしょうか? そもそも不可能ではと思っているのですが もしそういうテクニックがあるのならと思い質問させていただきました。 また、JavaScriptでは無理だがFirefoxのアドオンなら可能といった情報があればぜひ教えていただきたいと思います。 キーイベントに関してなのですが・・・ C#を使用しているんですが、テキストボックスをひとつ設置して、KeyDownイベントが発生した時に、同じキーが2度入力されたようにできませんか? aと入力したらテキストボックスにはaaと入力される感じです。 sendKeyメソッドを使用しようとしたら、大文字になってしまいます・・・ KeyCodeからキーボード判定はできたりしませんか? よろしければ教えてください>< Accessでのキーイベントの処理について Access2007のフォームのテキストボックスに指定のキーが押されると 「指定キーの処理」→「テキストボックスは指定キーが押される前の状態にする」 上記の動作をさせようとしているのですが、「指定キーの処理」は「キーイベントの処理」でうまく行ってるのですが、どうしてもテキストボックスに「今押したキー」が入力されてしまいます。 動作は 1:キー'A'が押される 2:キーイベントの処理を実施→Private Subを実行 Private Sub TB1_KeyDown(KeyCode As Integer, Shift As Integer) TB1_Copy = Me![TB1] ~~~~~~~~~~~キーイベントに関する処理 ’省略 Me![TB1] = TB1_Copy End Sub 以上の様にしているのですが、テキストボックスに「今押したキー」が入力されてしまいます。 宜しくご指導下さい。 親フレームからkeydownイベントの取得 現在フレームで2分割にされたページを作成しています。 ページ全体でkeydownイベントを取得したいので、親フレームにkeydownイベント取得の処理は埋め込んだのですが、keydownイベントを取得できませんでした。 分割された子ページにそれぞれ処理を埋め込めばよいのでしょうが、諸事情により分割された片方のページにはjavascriptを埋め込めません(片方には埋め込み可です)。 このような状況で親フレームにてkeydownイベントを取得することは無理なのでしょうか? 動作自体が実現できるなら、必ずしも親フレームに処理を埋め込まなくてもいいです(埋め込める子ページに埋め込むなどなど)。 JoyToKeyのキーイベント処理 1つのキーを押すと複数のキーを押したことにするソフトを作ろうと思いました。 そこで以下の方法でキーイベントを発生させて試してみました。 ・keybd_eventで処理。 ・PostMessageで処理。 ・SendInputで処理。 しかしメモ帳などではちゃんと機能するのですが、ゲームで機能してくれないものがあります。 JoyToKeyを使うときちんとキーボードが押された事になっているので、何か他の方法があるのだろうかと思い質問させていただきました。 よろしくお願いします。 Flexでのキーイベント取得について Flexでキーイベントを、 stage.addEventListener(KeyboardEvent.KEY_DOWN, イベント関数); こういう風に、stageにキーイベントを設けているのですが、 ウィンドウにフォーカスされてない時?などにイベントがとれません。 (ロード後やウィンドウをクリックした際は大丈夫です。) どうにか、ウィンドウにフォーカスされてない時でもキーイベント取得する方法はないのでしょうか? できれば、flex内で処理したいのですが、javascriptでも構いません。 どなたかいい方法があればご回答を宜しく御願いします。 C# Enterキーの動作について お世話になります。 VC#2010にて、フォームにボタンを配置し、そのボタンに フォーカスがあるときにEnterキーを押下すると、そのボタンが 押されたことになってしまいますが、これをさせない方法は ありますでしょうか。 Enterキーは、フォーム側でKeyDown(KeyPress?)処理で 別に行いたいので、押下として反応してしまうと、KeyDownに 処理が飛ばなくなってしまいます。 それを回避する方法です。 何卒よろしくお願いいたします。 VBで作成するactiveXcontrolについて教えてください KeyDownイベントでTABの仮想KEYコードを取得する方法を教えてください。 Formにキーイベントを認識させるには? キーボードからキーを入力して、フォームに貼り付けたラベルにその キーイベントを認識させたいのですがどうすればいいのでしょうか? それとも、フォーム自体に認識させるという解釈なのでしょうか? 質問が下手の申し訳ありません。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム MDI親フォームでのキー入力監視 はじめまして。 VB6.0 SP5で開発を行っております。 子フォームが開いていない状態のMDI親フォームで、F1~F12のファンクションキーを押下したら、それぞれ対応した子フォームが開くようにしたいのですが、MDI親フォームでは、KeyUpやKeyDownのイベントが発生しないため、キー入力監視ができません。 上記のような事を実現させるためには、どのようにすればよろしいのでしょうか。 MDI親フォームには、PictureBoxを貼りその中にボタンを設置して、マウスクリックでも子フォームを開くようにしています。PictureBoxでKeyイベントを取得しようとしましたが、ボタンをクリックして、子フォームを開き、その子フォームを閉じた後(子フォームのUnLoadイベント内で親フォームのPictureBoxにSetFocusしています)、フォーカスがどこかへ行ってしまい、イベントがとれません。 常に、子フォームを開いている状態で、子フォームでKeyイベントを取得するしかないのでしょうか。その場合、子フォームを閉じた時に、別のフォーム(Keyイベント取得用フォーム)を自動的に開く方法はありますでしょうか。 長文となり申し訳ありません。 ご教授の程、よろしくお願い致します。 開発環境 OS:WindowsXP SP3 言語:VisualBasic6.0 SP5 Flashのキーイベント処理について Flashのキーイベント処理でなかなか不具合が取れず、困っています。 よろしくお願いします。 今作っているFlashは1つのデータ内に複数のページが存在し、ページごとにキーイベント処理内容が異なる仕様のため、それぞれにキー処理を行っています。 内容は、下のようなスクリプトを書いています。 -<ページ(1)でのクリアキー判定>---------------- var Key_object = new Object(); Key_object.onKeyDown = function(){ code = Key.getCode(); if(code == 46){ //終了処理 } } Key.addListener(Key_object); ----------------------------------------------- -<ページ(2)でのクリアキー判定>---------------- var Key_object2 = new Object(); Key_object2.onKeyDown = function(){ code2 = Key.getCode(); if(code2 == 46){ //ページ(1)へ戻る処理 gotoAndPlay("page1"); } } Key.addListener(Key_object2); ----------------------------------------------- ですが、上の処理だとページ(2)でクリアキーを押した時にページ(1)に戻ってほしいのに、何故かページ(1)のクリアキー判定まで行われてしまい、終了処理がなされてしまいます。 この件についての原因と打開策が知識の乏しい私では見当たりません。 また、違う人に聞いたところ「ページ(2)でのクリアキー判定の方はイベントリスナーを使わずにキー判定を実装して」といわれました。 このイベントリスナーを使わずにクリアキーの判定を実装する方法がわかりません。 どなたか、上のスクリプトでの不具合原因や打開策、また「イベントリスナーを使わないクリアキーの判定方法」が分かる方、いらっしゃいませんでしょうか? ファンクションキーのキャンセル方法 教えてください。。 環境:Microsoft Visual C++ .NET 2003です。 フォーム画面上でF10が押された場合、 KeyDownイベントで処理をさせようとしているのですが、 処理が走ると同時に、フォーカスがフォーム内のコントロールから外れ、タイトルバーのメニューに移動してしまいます。 Windows本来のファンクション割り当てによる機能のようですが、これを回避(フォーカスが移動しない)するにはどの様にすればよいのでしょうか? フォームでの右クリックを禁止したい フォーム上で右クリック禁止にしたいのですが どうすればいいでしょうか? フォームの KeyDown(キークリック時) KeyPress(キー入力時) KeyUp(キー開放時) のどれかのイベントな気がしますが どのイベントにどのようなVBAコードを書けばいいのかわかりません。 ご教示よろしくお願い致します。(access2003) C#のキーイベント取得 ASP.NET、C#でWebを開発しております。 ASP.NET 2.0,VssualStudio2005、です。 あるフォームでキー(例えばctlrキー)が、 押された場合に別のpageに飛ぶ。 ということをしたいのですが、 キーイベントはどうやって取得すればよいのでしょうか? 情報が少なくてすみませんが、どなたかご教授お願い致します。 iPhoneからLinuxでの矢印キー動作 iPhoneからCentOS5.7のLinuxマシンにTouchTermというアプリでログインしていますが、コンソール画面で上矢印キーを押下すると ^[[A のように表示されます(他の矢印は^[[B ^[[C ^[[D)。 そのままEnterを押すと前回のコマンドが実行されるのでキーの機能自体は働いているようですが、コマンドが表示されないので有効には使えません。 矢印キーを通常の入力支援機能として使いたいのですが、ホスト側の設定、またはiPhoneで動作するアプリなどあるのでしょうか。 よろしくお願いします。 keydownイベント ユーザーフォーム上に複数のテキストボックスが設置されていて それらに対して同一のkeydownイベントで処理することは可能でしょうか。 keudownイベントの内容は全く同一の処理内容です。 テキストボックスが30個設置されているので一つ一つ書くのが面倒くさくて・・・ KetPreview=Trueにもかかわらず フォームのKeyPreviewをTrueにして、 KeyDownにKeyCode = 0と書けば他のキー操作は無効となる筈ですよね。 矢印キーを押すとある動作を行う、という風にしたいのですが、 記述した動作が行われない代わりに、通常のフォーカス移動がなされるだけなのです。 何故なのでしょうか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。そういう方法もあったんですね。試してみます。