OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

SSTABでのKEYDOWNイベント

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

お礼率 73% (46/63)

VB6・SP5で開発を行っています。
FormのKEYDOWNイベントでPageUp・PageDownの押下の際に、
SSTAB上のアクティブなTABをずらす処理を行おうとしています。

問題はSSTAB上にフォーカスが移った直後だけ、
KEYDOWNイベントが2回実行されてしまうというものです。
KEYUPについても同様でした。
このような現象をご存知の方、
対処方法をお教えくださる方がいらっしゃいましたらよろしくお願いします。

ちなみにモジュール変数等のフラグはなるべく使用したくありません。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 59% (729/1235)

SSTAB上にフォーカスがあるときにどんなキーでもForm_KeyDownイベントが2回発生します。
これはSSTABのバグだと思います。

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Static Cnt As Long
Debug.Print Cnt, KeyCode
Cnt = Cnt + 1
End Sub

で、KeyCode = 0にすると何故うまくいくかというと、うーん分からん..
お礼コメント
u_kappa

お礼率 73% (46/63)

やっぱりバグなんですか。。。結構はまっていたので助かりました。
KeyCode=0ですが、KeyDownイベントのヘルプに以下のようにありました。
KeyCode=0とするとKeyイベントが無効となるようです。
以下引用のみ---------
キーボード イベントの処理をフォーム レベルだけで行い、
コントロールにキーボード イベントを送らないようにするには、
フォームの KeyPress イベントで引数 KeyAscii を 0 に設定し、
フォームの KeyDown イベントで引数 KeyCode を 0 に設定します。
投稿日時 - 2002-02-27 14:05:55
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 59% (729/1235)

>FormのKEYDOWNイベントでPageUp・PageDownの押下の際に、 >SSTAB上のアクティブなTABをずらす処理 の後にKeyCode = 0 ...続きを読む
>FormのKEYDOWNイベントでPageUp・PageDownの押下の際に、
>SSTAB上のアクティブなTABをずらす処理

の後にKeyCode = 0
お礼コメント
u_kappa

お礼率 73% (46/63)

回答ありがとうございます。
お教えいただいた方法でうまくいきました。

でも、なぜ2回イベントが発生してしまうのでしょうか?
ご存知でしたら教えてください。
投稿日時 - 2002-02-27 12:32:53
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ