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.その他、当サイト内に掲載しているテキストボックスに関するサンプル


3.フォーカスのあるテキストボックスを視覚化する
1.フォーカスのあるテキストボックスを視覚化する(テキストボックスが配列の場合)
2.フォーカスのあるテキストボックスを視覚化する(テキストボックスが配列でない場合)
3.テキストボックス上のカーソルを見やすくする
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
CreateCaret / ShowCaret / DestroyCaret / HideCaret
その他 :
    :
このページのトップへ移動します。 1.フォーカスのあるテキストボックスを視覚化する(テキストボックスが配列の場合)

Option Explicit

Private Sub Text1_GotFocus(Index As Integer)
  Text1(Index).BackColor = QBColor(14)    '黄色
  Text1(Index).ForeColor = QBColor(12)    '赤
End Sub

Private Sub Text1_LostFocus(Index As Integer)
  Text1(Index).BackColor = QBColor(15)    '白
  Text1(Index).ForeColor = QBColor(0)     '黒
End Sub

このページのトップへ移動します。 2.フォーカスのあるテキストボックスを視覚化する(テキストボックスが配列でない場合)

Option Explicit

Private OldActive As String

Private Sub Form_Load()
  Timer1.Interval = 100
  Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
  If Screen.ActiveControl.Name = OldActive Then
    '同じテキストボックス上の場合
    Exit Sub
  ElseIf OldActive <> "" Then
    'アクティブだったテキストボックスからフォーカスが移動した場合
    Me.Controls(OldActive).BackColor = QBColor(15)
    Me.Controls(OldActive).ForeColor = QBColor(0)
    OldActive = ""
  End If

  If TypeOf Screen.ActiveControl Is TextBox Then
    'テキストボックスがアクティブの場合
    OldActive = Screen.ActiveControl.Name
    Me.Controls(OldActive).BackColor = QBColor(14)
    Me.Controls(OldActive).ForeColor = QBColor(12)
  End If
End Sub

プロシージャにしてここのテキストボックスのイベントから呼んでもいいのだが、テキストボックスが多いとそれぞれのイベントに書くのが面倒になるので、Timer イベントを使ってみました。

このページのトップへ移動します。 3.テキストボックス上のカーソルを見やすくする

Option Explicit   'SampleNo=394  2005.06.24

'キャレットを作成する(392)
Private Declare Function CreateCaret Lib "user32" _
  (ByVal hwnd As Long, ByVal hBitmap As Long, _
   ByVal nWidth As Long, ByVal nHeight As Long) As Long
'キャレットを表示する(395)
Private Declare Function ShowCaret Lib "user32" _
  (ByVal hwnd As Long) As Long
'キャレットを破棄する(392)
Private Declare Function DestroyCaret Lib "user32" () As Long
'キャレットを非表示にする(394)
Private Declare Function HideCaret Lib "user32" _
  (ByVal hwnd As Long) As Long

'今回のテーマとは関係ありませんが、結構要望もありますので、ついでにと言う事で。
Private Sub Text1_GotFocus()
'キャレットを非表示に
  HideCaret Text1.hwnd
End Sub


' 6=太さ  15=高さ です。
Private Sub Text2_GotFocus()
'少し太めのキャレット
  CreateCaret Text2.hwnd, 0, 6, 15
  ShowCaret Text2.hwnd
End Sub


'ペイント等で好きな形で、好きな色の BMP を作成し、ピクチャーボックスに表示しておいて下さい。
Private Sub Text3_GotFocus()
'自作のBMPのキャレット
  CreateCaret Text3.hwnd, Picture1.Picture, 6, 15
  ShowCaret Text3.hwnd
End Sub


  上記実行結果(画像は合成しております)
 textbox03_01.png
上図で、一番下が標準のキャレットです、このようにしてみるとどこにあるのかが分かり難いのがよく分かるかと。

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


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


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


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





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