掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CommandButtonのKeyEventが発生しない (ID:102573)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士様 回答して頂きありがとうございます。 コマンドボタンに書いているソースは以下になります(Keydownも同じKeyUpと同じ内容で書いています)。 この間は 1.テキストボックス 2.コマンドボタン 3.テキストボックス と書きましたが、 実際はコマンドボタンが複数のテキストボックスに間にある並びとなっています(コマンドボタンは制御用のダミー項目として使用)。 1.商品コードテキストボックス 2.商品名テキストボックス 3.売上数量テキストボックス 4.単位テキストボックス 5.コマンドボタン(ダミー項目) 6.売上単価 7.売上金額 【コマンドボタンのソース】 Private Sub 頁開始_KeyUp(Index As Integer, KeyCode As MSForms.ReturnInteger, Shift As Integer) Debug.Print "頁開始_KeyUp" & KeyCode If KeyCode = 13 Or KeyCode = 9 Or KeyCode = 97 Or KeyCode = 39 Or KeyCode = 40 Then If 売上単価(Index).TabStop = True Then 売上単価(Index).SetFocus ElseIf 売上金額(Index).TabStop = True Then 売上金額(Index).SetFocus End If ElseIf KeyCode = 37 Or KeyCode = 38 Then If 単位(Index).TabStop = True Then 単位(Index).SetFocus ElseIf 売上数量(Index).TabStop = True Then 売上数量(Index).SetFocus ElseIf 商品名(Index).TabStop = True Then 商品名(Index).SetFocus ElseIf 商品コード(Index).TabStop = True Then 商品コード(Index).SetFocus End If End If End Sub >キー操作以外でフォーカス移動した場合は? マウスでクリックした場合はコマンドボタンにフォーカスがとまったままでした。 >VB6 に、KeyEvent というイベントやプロパティは無いと思います 申し訳ありません。KeyDownとKeyUpのことを指しています。 >とりあえず、ボタンで止まるというか、キー入力をうまく拾えて >いないという話なら、それぞれのキーイベントに渡されるキー入力を、 >App.LogEvent メソッド等で記録して、違いを比較してみては如何でしょう。 Debug.Printで私の端末とお客さんの端末で動きを確認しました。 私の端末では、コマンドボタンにフォーカスが移動したのち(gotFocusイベント発生)、KeyUpのイベントが発生し、テキストボックスに遷移していたのですが、お客さんの端末では、 Enterや↑を遅く押した場合は私の端末と同じ動きをしますが、 すばやくEnterや↑を押した(たとえば7.の項目からすばやく↑を2回) ときにはコマンドボタンのGotFocusイベントのみが発生し、KeyUpのイベントがはしらず、コマンドボタンにとまってしまいました。 ただし、プログラムを立ち上げた直後(Form_Load後)の一回目は すばやく押してもコマンドボタンにとまるようなことはなく、 二回目以降はすばやく押すとコマンドボタンでとまってしまう現象と なってます。 >あと、(KeyPress ではなく)KeyDown/Up の場合は、キーボードの種類にも >気を付けてみてください。 普段は109を使っていますが、106でも同様でした。 今のところお客さんの端末との違いはスペックぐらいと思われます (スペックの違いでイベントがひろえないのでしょうか?)。 私の端末:Pentium4 2.66GHz メモリ504MB お客さんの端末:Intel Core2 Duo 2.93GHz メモリ2GB
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.