[リストへもどる]
一括表示

投稿時間:2003/01/10(Fri) 20:16
投稿者名:ゆうや
Eメール:curren62036@yahoo.co.jp
URL :
タイトル:
vbKeySeparatorについて。
こんばんは。わからないことがあるので投稿してみました。
Win98 SecondEdition で VB6.0 SP5を使っています。
テキストボックスにこのような処理を入れて、Enterキーを押した時のみ処理をするようにしタイと思
っています。

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeySeparator) Then
        '此処に処理があります。
    End If
End Sub

このとき、テキストボックスの入力でキーボードから「L」を入力すると、このIf文内に入ってきます
。ヘルプを参照して、「L」を入力したときはKeyAsciiはvbKeyLだと思っていたのですが、KeyAsciiはv
bKeySeparatorの値(108)でした。以降、「M」を入力するとvbKeySubtract、「P」を入力するとvbKeyF1
の値になります。

これはどうすればよいのでしょうか??何か違う方法でやった方がいいのでしょうか?
また、皆さんの動作環境ではこのようなこと、起こりますか??
どなたかご存知の方、教えてください。宜しくお願いします。

投稿時間:2003/01/10(Fri) 21:03
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: vbKeySeparatorについて。
bKeySeparator の定数は108ですが Asciiコードの 108 は l です。
キーコードの定数とAsciiコードは同じではありません。

下記で試して見て下さい。

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = vbKeyReturn) Or (KeyCode = vbKeySeparator) Then
        Debug.Print KeyCode '此処に処理があります。
    End If
End Sub

投稿時間:2003/01/10(Fri) 21:12
投稿者名:ゆうや
Eメール:curren62036@yahoo.c.jp
URL :
タイトル:
御礼: vbKeySeparatorについて。
>花ちゃんさん
れすありがとうございます。
納得しました!!!キーコードの定数とAsciiコードは違うんですねぇ。vbKeyxxとあるのでごっちゃに
なっていました。
ありがとうございました!!!