■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#11491-0キーボードのじゅうじキーによる操作匿名114912000-09-18(月) 12:18
     #11497-0RE#11491:キーボードのじゅうじキーによる操作匿名114972000-09-18(月) 14:55
     #11499-0RE#11497:キーボードのじゅうじキーによる操作匿名114992000-09-18(月) 14:57
     #11500-0RE#11499:キーボードのじゅうじキーによる操作(追加)匿名115002000-09-18(月) 15:43
     #11508-0RE#11500:キーボードのじゅうじキーによる操作(追加)レベル102000-09-18(月) 16:43
     #11512-0RE#11491:キーボードのじゅうじキーによる操作魔界の仮面弁士2000-09-18(月) 16:49
     #11513-0RE#11491:キーボードのじゅうじキーによる操作せつら2000-09-18(月) 16:50
     #11514-0RE#11508:キーボードのじゅうじキーによる操作(追加)通りすがり2000-09-18(月) 16:53
     #11515-0RE#11514:キーボードのじゅうじキーによる操作(追加)レベル102000-09-18(月) 17:07
     #11516-0RE#11515:キーボードのじゅうじキーによる操作(追加)魔界の仮面弁士2000-09-18(月) 17:22
     #11517-0RE#11516:キーボードのじゅうじキーによる操作(追加)レベル102000-09-18(月) 17:31
     #11536-0RE#11516:キーボードのじゅうじキーによる操作(追加)匿名115362000-09-19(火) 10:49
#11491-0
キーボードのじゅうじキーによる操作
 フォーカスの移動(上下や左右の移動)をキーボードのじゅうじキーで行うには、どうすればいいのですか。
sendkeysとTabオーダはできました。
#11497-0
RE#11491:キーボードのじゅうじキーによる操作
>  フォーカスの移動(上下や左右の移動)をキーボードのじゅうじキーで行うには、どうすればいいのですか。
> sendkeysとTabオーダはできました。

  Windowsの仕様として、そういうのが無いと思うので作るしかないかも。
  もし、他の正しい解答が来たら、これは無視してくださひ。

  あと、フォームでキーイベントを受ける方法ってのもありそうだし。


  とりあえず、テンキーで移動するようにデフォルトのまま4つのボタンを配置して、
     Command1
  Command4  Command3
     Command2
  (こんな感じ。)
  総てのボタンの、「KeyPressイベント」に

    If KeyAscii = Asc("4") Then
        Command4.SetFocus
    ElseIf KeyAscii = Asc("6") Then
        Command3.SetFocus
    ElseIf KeyAscii = Asc("2") Then
        Command2.SetFocus
    ElseIf KeyAscii = Asc("8") Then
        Command1.SetFocus
    End If

  って書いてみてください。
#11499-0
RE#11497:キーボードのじゅうじキーによる操作
  あ。数値のところを、カーソルキーのコードに置き換えてください。
  何番だっけな? まぁ、ヘルプにあるでしょう(ぉ
#11500-0
RE#11499:キーボードのじゅうじキーによる操作(追加)
すみません。どれをどうすればいいのかわかりません。ただキーボードのじゅうじキー(矢印キー)で
フォーカスを移動させたいのですが、じゅうじ(矢印)キーにコードがあるのでしょうか。
本当にヘルプをみても分かりませんでした。
#11508-0
RE#11500:キーボードのじゅうじキーによる操作(追加)
> すみません。どれをどうすればいいのかわかりません。ただキーボードのじゅうじキー(矢印キー)で
> フォーカスを移動させたいのですが、じゅうじ(矢印)キーにコードがあるのでしょうか。
> 本当にヘルプをみても分かりませんでした。
出来れば、コードの番号をそのまま使うのではなく、VBで用意されている定数
を使いましょう。
対応表はヘルプで、「Keycode 定数」を調べて下さい。

#コマンドボタン等のボタンコントロールはTabStopプロパティがTrueになっていると、
#カーソルのイベントが発生しないので(勝手にフォーカスが移動する)気をつけてください
#11512-0
RE#11491:キーボードのじゅうじキーによる操作
>  フォーカスの移動(上下や左右の移動)をキーボードのじゅうじキーで行うには、どうすればいいのですか。

FormのKeyPreviewプロパティをTrueにしておけば、
FormのKeyDown/KeyUpイベントで、矢印キーを拾うことができます。
なお、矢印キーのキーコード定数は、vbKeyLeft 〜 vbKeyDown です。
詳しくはヘルプで「キー コード定数」「KeyDown イベント」を調べてください。

ただし、CommandButtonやOptionButton等の「ボタン系コントロール」に
フォーカスがある場合は、矢印キーを拾うことはできないので、注意してください。
(APIを使えばできないこともないんだけど、結構面倒)
#11513-0
RE#11491:キーボードのじゅうじキーによる操作
キーの定数が知りたいだけなら、「キー コード定数」のヘルプをみましょう。

ただし、矢印キーによるフォーカス移動はOSの管理下にあるため、アプリが勝手に使う事は困難です。
(フォーム上に、フォーカスを得る事のできるコントロールが複数あると、VBだけでは駄目)

諦めて、他のキーコードにしましょう。
#11514-0
RE#11508:キーボードのじゅうじキーによる操作(追加)
> #コマンドボタン等のボタンコントロールはTabStopプロパティがTrueになっていると、
> #カーソルのイベントが発生しないので(勝手にフォーカスが移動する)気をつけてください

ボタン上でTabStopの影響を受けるのは、矢印キーではなく、Tabキーでは?
#11515-0
RE#11514:キーボードのじゅうじキーによる操作(追加)
> ボタン上でTabStopの影響を受けるのは、矢印キーではなく、Tabキーでは?
あ、しまった・・・訂正です。
> #コマンドボタン等のボタンコントロールはTabStopプロパティがTrueになっていると、
> #カーソルのイベントが発生しないので(勝手にフォーカスが移動する)気をつけてください
ではなく、

> #コマンドボタン等のボタンコントロールは他にTabStop=Trueのコントロールが複数あると、
> #カーソルのイベントが発生しないので(勝手にフォーカスが移動する)気をつけてください
と、言いたかったんです(泣)
#11516-0
RE#11515:キーボードのじゅうじキーによる操作(追加)
>> #コマンドボタン等のボタンコントロールは他にTabStop=Trueのコントロールが複数あると、
>> #カーソルのイベントが発生しないので(勝手にフォーカスが移動する)気をつけてください
> と、言いたかったんです(泣)

「カーソルのイベントが発生」って、矢印キーを押した/離したときに、
KeyDown/KeyUpイベントが発生するという話ですよね?

当方は、Win98 + VB6 ですが、
  TabStopがTrueであろうとFalseであろうと、
  他にコントールがあろうとなかろうと、
ボタン系コントロール上では、「常に」矢印キーを拾う事ができませんでした。(;_;)
#11517-0
RE#11516:キーボードのじゅうじキーによる操作(追加)
> 当方は、Win98 + VB6 ですが、
>   TabStopがTrueであろうとFalseであろうと、
>   他にコントールがあろうとなかろうと、
> ボタン系コントロール上では、「常に」矢印キーを拾う事ができませんでした。(;_;)
こっちでも無理でした。 Win2000 + VB6(SP3)
済みません、適当なこと言ってました。

#TABとごっちゃになってました。確認しないと自爆しますね。

削除キー 1111
#11536-0
RE#11516:キーボードのじゅうじキーによる操作(追加)
> ボタン系コントロール上では、「常に」矢印キーを拾う事ができませんでした。(;_;)

  やってみました。
  おおお。カーソルで勝手にフォーカス移動しますね(汗)
  これは申し訳ない。

  んで、あの、私の書いた初代の例のような使い方でいいなら
  恐ろしいというか、無理やり動くのは作ってみました。

        Command1
   Command2  Command3
        Command4

     Text1

  と配置して、

  Command ボタン全部の、LostFocus イベントに

    Text1.SetFocus

  と、書いて、
  Text1 の KeyUp イベントに、

    If KeyCode = 38 Then
        Command1.SetFocus
    ElseIf KeyCode = 37 Then
        Command2.SetFocus
    ElseIf KeyCode = 39 Then
        Command3.SetFocus
    ElseIf KeyCode = 40 Then
        Command4.SetFocus
    End If

  と、書いてみてください。
  少なくとも、カーソルキーと連動して、フォーカスが移動します。

  これは実際にやったので間違いないです(汗)
  (見た目が、かなり美しくないけど)
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)