カウンターがうまく動作しません

解決


TAPICS  2009-01-30 01:32:33  No: 101529

初心者ですが宜しくお願いします。

F1キーを押す度にカウントが増えていくものを作りたく、下のようにして出来たのですが、次にフォーム上に新たにコマンドボタンを置くと、動作しなくなります。

何が悪いのか、ご教授お願いします。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Static a As Integer
    Select Case KeyCode
    Case 112
        a = a + 1
        Label1 = a
    End Select

End Sub


魔界の仮面弁士  2009-01-30 01:52:03  No: 101530

「Case 112」だと、後から見たときに何の事かわかりにくいので、
「Case vbKeyF1」などのように記述することをお奨めします。

> 新たにコマンドボタンを置くと、動作しなくなります。
Form_KeyDown を Command1_KeyDown にすればカウントされます。

> 何が悪いのか
大雑把に言えば、フォームに通知される前に、
アクティブなコントロールにキー入力が奪われるからです。

常に Form で受け取りたいのであれば、フォームの
KeyPreview プロパティを True にしておけば OK です。

# ただし、中には KeyPreview = True でも受け取れないキーもあるので注意。


TAPICS  2009-01-30 02:24:31  No: 101531

素早い解答ありがとうございます。
うまく動作しました。

的確な解答な上に、その理由やアドバイスまで頂き、本当に感謝です。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加