VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 テキストボックス関係のメニュー
1.テキストボックスにフォーカスが移動した時にカーソルを指定位置に設定
2.テキストボックスに数値しか入力出来ないように制限する
3.フォーカスのあるテキストボックスを視覚化する
4.テキストファイル読み込み表示及びテキストボックスのデータを保存
5.テキストボックスの総行数・現在行・現在桁の取得
6.複数行テキストボックスの指定行の文字列を取得する
7.SendInputV6.dll を使っての Enter キーでのフォーカス移動
8.テキストボックスへの貼り付け防止(DLLを使用しての簡単なサブクラス化)
9.テキストボックスで縦方向中央揃え・下揃え・上揃えをする
10.エクセルファイル(.xls)をテキストボックスに表示及び編集保存する
11.2つのテキストボックスのスクロールの同期を取る改良版
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載しているテキストボックスに関するサンプル


7.Send InputV6.dll を使っての Enter キーでのフォーカス移動
1.テキストボックスでの Enter キーによるフォーカス移動(SendInputV6.dll を使っての簡単操作例)
2. 
3. 
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:SendInputV6.dll
使用 API:SendInputV6.dll は、下記よりダウンロードして EXE と同じフォルダーにでも解凍し参照設定して下さい。
その他 :ダウンロード先 http://hanatyan.sakura.ne.jp/freesoft/SendInputV6.zip
    :SendInputV6.dll については、SendInput 関数のDLL化による簡単キーボード操作 をご覧下さい。
このページのトップへ移動します。 1.テキストボックスでの Enter キーによるフォーカス移動(SendInputV6.dll を使っての簡単操作例)
基本的な操作は、Win32 API関数を使ってのEnterキーでの自由自在フォーカス移動と同じですが、keybd_event APIを使っているので、SendInput API を DLL 化したものを使って操作する方法を掲載しておきます。
この手のサンプルは、色々な方法が掲載されてますが、1長1短がありますので、ご自分の使い勝手のいいものをご使用下さい。

Option Explicit

Private Sub Form_Load()
  'フォームのイベントを優先
  Form1.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If Shift = 0 Then
    Select Case KeyCode
      Case vbKeyReturn      'Enter
        Call sRemoveFocus
      Case vbKeyDown       '↓
        Call sRemoveFocus
      Case vbKeyUp        '↑
        Call sRemoveFocus(1)
      Case Else
        Exit Sub
    End Select
    KeyCode = 0
  ElseIf Shift = 1 And KeyCode = vbKeyReturn Then
    Call sRemoveFocus(1)      'Shift + Enter で逆移動
    KeyCode = 0
  End If
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
  If KeyAscii = vbKeyReturn Then
    KeyAscii = 0  '消音用
  End If
End Sub

Private Sub sRemoveFocus(Optional Previous As Integer = 0)
  Dim SI As New SendInputV6.Class1
  Call SI.KeyReSet        'キー操作の初期化(使用した変数等の初期化)
  If Previous = 1 Then      '前のタブ位置へ移動 [Shift]+[TAB]
    Call SI.KeyDown(vbKeyShift) 'Shiftキーの押し下げの動作を記録(実際の操作は行われない)
    Call SI.KeyDown(vbKeyTab)  'Tabキーの押し下げの動作を記録
    Call SI.KeyUp(vbKeyTab)   'Tabキーを離す
    Call SI.KeyUp(vbKeyShift)  'Shiftキーを離す
  Else              '次のタブ位置へ移動 [TAB]
    Call SI.KeyDown(vbKeyTab)  'Tabキーの押し下げの動作を記録
    Call SI.KeyUp(vbKeyTab)   'Tabキーを離す
  End If
  Call SI.KeyStroke        '上記一連のキー操作を一括で実行(ここで初めてキー操作を実行)
End Sub

このページのトップへ移動します。 2. 


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
Enter キーによるフォーカス移動 カーソル移動キーによるフォーカス移動 Shift + Enter キーでファーカス逆移動




このページのトップへ移動します。