Microsoft Access Club >SampleFile Q & A >インデックス >このページ >次頁 < 前項  サイト内検索


Q&A-004 キーボードイベント取得プロパティの一例
--タブコントロールへのフォーカスの自動移動



Access Club 超初心者 BBS
タイトル : タブコントロールへのフォーカスの自動移動
記事No : 6462
投稿日 : 2003/04/13(Sun) 23:49
投稿者 : パク

OS:XP
Access Version:2002
いつもお世話になっております。早速質問させていただきます。

フォームの中にタブコントロールを設置しています。
タブ移動順がタブコントロールの前のコントロールでTABキーおよびEnterキーを押した時に、タブコントロールの中のコントロールに自動的にフォーカスが移るようにしたいのですが、TABキーを押していくと、一度タブコントロールのタブの部分に
フォーカスが移動してから、次のTABキーでタブコントロール内のコントロールにフォーカスが移るという動きをしてしまいます。

また、Enterキーを押していくと、タブコントロールのタブの部分にカーソルが移動した後、もう一度Enterキーを押すと、タブ移動順がタブコントロールの次のコントロールに移動してしまい、タブコントロール内のコントロールにフォーカスが移動しません。

タブ順序がタブコントロール前のコントロールのフォーカス喪失時イベントでタブコントロール内のコントロールへSetFocusすると、他のコントロールにフォーカスを移動しようとし、マウスで他のコントロールをクリックしたときもSetFocusで指定したタブコントロール内のコントロールへ移動するようになってしまいます。

うまく、自然な動きでタブコントロール内のコントロールへ、自動的にカーソルが動くようにできないものでしょうか。
 


>TABキーを押していくと、一度タブコントロールのタブの部分にフォーカスが移動してから、

例えば、テキストボックスからTabキィーでタブコントロールへ移動させると、下記のようにタブコントロールの「切り替えタブ」に移動してしまう現象です 。

実現するために、「キィーボード取得プロパティ」を利用して、キィーボード上のTabキィーがクリックされたなら、タブコントロールのテキストボックス(txt日付)にフォーカスを移動させます。

フォームの読み込み時イベントプロシージャの作成

フォームに下記のプロシージャを記述します。

Private Sub Form_Load()

    'キィーボード取得プロパティを可能にする。
    Me.KeyPreview = True
    
End Sub

コマンドボタンtxtIDのキークリック時イベントプロシージャの作成

Private Sub txtID_KeyDown(KeyCode As Integer, Shift As Integer)

    'Tabキィーが押された場合のみ、txt日付テキストボックスに移動する。
    If KeyCode = vbKeyTab Then Me.txt日付.SetFocus

End Sub
解説
  1. vbKeyTabは、キィーコード定数と呼ばれているものです。詳細は、ここをクリックして下さい。

関連ページ

2003/04/14

ページの先頭へ 前ページへ戻る

 


Q&A-004 キーボードイベント取得プロパティの一例
--タブコントロールへのフォーカスの自動移動


 

-Microsoft Access Club-