重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

↑や↓のキーを押すとTabキーを押したときと同じように動くプログラムを知っている方教えてください。(SetFocusを使わない方法でお願いします。)

A 回答 (2件)

APIを使ってはいかがでしょうか?



キーボードの監視の方はAPIではなくKEYDOWNでもいいですし
APIではキーボードの状態取得するAPIでGetKeyStateがあります。
それによってTABキーを押した状態にするにはkeybd_eventAPIを使って
TABキーを押したようにします。

'サンプル
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const VK_UP = &H26 '[↑]
Private Const VK_DOWN = &H28 '[↓]
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_TAB = &H9 '[TAB]
If (GetKeyState(VK_DOWN)) <> 0 Then
Call keybd_event(VK_TAB, 0, 0, 0)
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
ElseIf (GetKeyState(VK_UP)) <> 0 Then
Call keybd_event(VK_TAB, 0, 0, 0)
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
EndIf
もし、カーソルでフォーカスを上や下のオブジェクトに移動したいので
あれば、IF文の中でTABSTOPのオン/オフや、TABINDEX変更する事で
可能だと思います。
またサンプルGetKeyStateを使っていますが、瞬間しか監視できないので
イベントのKEYDOWNを使うのが良いと思います。
    • good
    • 0
この回答へのお礼

参考になりました。どうもありがとうございました。

お礼日時:2002/05/23 11:22

上キーが押されたら、それをキャンセルしてShift+Tabを押したことにする。


下キーが押されたら、それをキャンセルしてTabが押されたことにする。

ってのは?
    • good
    • 0
この回答へのお礼

参考になりました。どうもありがとういございました。

お礼日時:2002/05/23 13:28

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