都道府県穴埋めゲーム

OS:windows2000pro
VB:VB6.0sp5

keyDown関数を用いて、アンダーバーを感知しようとしているのですが、できません

keycode,shift = (1)226,0 = [\]
keycode,shift = (2)16,1 = [shift]
となります

どのようにすれば良いのでしょうか?

 また、keyDown関数にて感知可能の場合
keycode,shift = ?,? の場合でしょうか?
よろしくお願いいたします

A 回答 (2件)

調査方法:


テキストボックスを2つ配置
設定するプロパティは「Multiline」をTrueにする

テキストボックスのキーイベントにて下記のように
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  
  'キー情報出力
  Me.Text2.SelStart = Len(Me.Text2.Text) + 1
  Me.Text2.SelText = "KeyCode -> " & KeyCode & " Shift -> " & Shift & vbCrLf
  
End Sub

この様にすれば、直前に押下されたキー情報を取得できます


ちなみに
  'アンダースコア検知
  If (Shift And vbShiftMask) And (KeyCode = 226) Then
    Me.Text2.SelStart = Len(Me.Text2.Text) + 1
    Me.Text2.SelText = "アンダースコアです" & vbCrLf
  End If


あと理解しているといいもの
Shift、Ctrl、および Alt の各キーの状態の検出
http://www.microsoft.com/japan/developer/library …
    • good
    • 0

keyPressイベントではダメですか?


keyPressは入力した文字の検知、keyDownは押されたキーの検知です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!