OptionButtonで、←・↑・→・↓の4種類の動きをかえたいのですが
できないでしょうか?
もしできないのであれば、Textbox以外で←・↑・→・↓の4種類のくべつが
できるなにかありませんか?

よろしくおながいします。

A 回答 (2件)

>できないですが???


→を押してもKeyDownにこないです(なぜ?)

あれ、ホントですねぇ。すいません、確かめずに投稿してしまって。
Keydownイベントがあるにもかかわらず、同イベントが発生しない…妙な仕様ですねぇ。(ちなみに、VB5使ってます)

代替策として、SetWindowLong APIを使って、メッセージをフックしてみたんですが、これでもカーソルキー「だけ」がフック出来ない。他のキーは全部取得できるんですが…
(SetWindowLong について)
http://www.int21.co.jp/pcdn/vb/vb5/vb5adrof.html


それ以外の方法では多分、SetWindowsHookEx / UnhookWindowsHookEx APIを使って、キーボードを監視すれば出来るんじゃないかなぁ。使ったこと無いんで、分からないんですが(^^;
(参考URLに解説あり …ですが、よく分からん(汗))

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0

オプションボタンのKeyDownイベントに、下記のように書けばいいです。


KeyDownイベントは、フォームなどのオブジェクトにも装備されていますので、色々応用が出来ます。

Private Sub Option1_KeyDown(KeyCode As Integer, Shift As Integer)
  Select Case KeyCode
    Case vbKeyUp
      'TODO:↑を押したときの動作
      
      KeyCode = 0 '標準のキー押下時の動作をキャンセルする
    Case vbKeyDown
      'TODO:↓を押したときの動作
      
      KeyCode = 0
    Case vbKeyLeft
      'TODO:←を押したときの動作
      
      KeyCode = 0
    Case vbKeyRight
      'TODO:→を押したときの動作
      
      KeyCode = 0
  End Select
End Sub

この回答への補足

できないですが???
→を押してもKeyDownにこないです(なぜ?)

補足日時:2001/10/08 17:00
    • good
    • 0

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


人気Q&Aランキング

おすすめ情報