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 上記実行結果(画像は合成しております) 上図で、一番下が標準のキャレットです、このようにしてみるとどこにあるのかが分かり難いのがよく分かるかと。 |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |