> VB6.0 > Form: > KeyPreview=True > KeyDown,KeyPressともに処理有り、ただしEnterは判別していない > TextBox: > KeyDownで入力値判定,KeyPressでEnter判定と処理で最後にKeyAscii=0にする > > 何かおかしいところはありますか? > Form側で処理すると確実にBEEPは消えるのですが、 > 各コントロール側で処理をする必要があります。
結局は各コントロール(おそらく、各TextBoxでだろうと思うけど) でBeepを消すためにKeyAscii=0をしているんですよね。
書いていただいたイベントに処理(Debug文だけだけど)入れてみたのですが、 Beepがなるという状況を再現できませんでした。
再現できる最低限のコードを提示してくれると、確かめようがあるんですが。 (特殊なOCX使ってると、こっちではチェックできないけど)
一応、こっちでチェックしたコード VB6(SP4),Win2000
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Debug.Print "Form_KeyDown : " & KeyCode End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) Debug.Print "Form_KeyPress : " & KeyAscii End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Debug.Print "Text1_KeyDown : " & KeyCode End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then KeyAscii = 0 End If End Sub
|