3

これは奇妙なことですが、VB6でプレースホルダーテキスト機能をエミュレートする方法はありますか?そうでなければ、誰かが私がこれを行うどこかで得ることができる良いOCXコントロールを知っていますか?すでに行われていることを探すだけで、これを行うための一連の関数をプログラムできると確信しています。

私が質問しているプレースホルダーは、VB6の「フォーマット」ではありませんが、たとえばラベルではなく、Webフォームに表示されるテキストのようです。

テキストボックス内のテキスト。そのボックスにどのような情報が入力されるかを示したり、ユーザーがその特定のボックスに入力する情報の例を示したりします。

いつものように、どんな助けでも大歓迎です。

4

2 に答える 2

6

キューバナーが必要なようです。これらはComboBoxコントロールでも機能します。

Private Const CBM_FIRST As Long = &H1700&
Private Const CB_SETCUEBANNER As Long = CBM_FIRST + 3
Private Const ECM_FIRST As Long = &H1500&
Private Const EM_SETCUEBANNER As Long = ECM_FIRST + 1

Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" ( _
    ByVal hWnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Private Sub SetCueBannerTXT(ByVal TextBox As TextBox, ByVal CueText As String)
    SendMessage TextBox.hWnd, EM_SETCUEBANNER, 0, StrPtr(CueText)
End Sub

Private Sub SetCueBannerCBO(ByVal ComboBox As ComboBox, ByVal CueText As String)
    SendMessage ComboBox.hWnd, CB_SETCUEBANNER, 0, StrPtr(CueText)
End Sub

注このAPIを使用するには、Comclt32.dllバージョン6.0を指定するマニフェストを提供する必要があります。

于 2012-11-13T21:55:28.303 に答える
3

私があなたが何を望んでいるかを正しく理解しているかどうか見てみましょう。たとえば、その中に「名」と書かれたテキストボックスが必要で、ユーザーに何を入力するかを示しますか?

これは、デザインモードでテキスト値を「名」に設定することで実現できます。次に、GotFocusイベントで、内部のテキストを削除して、ユーザーに情報を入力するための空白のテキストボックスを提供します。

よりユーザーフレンドリーにするために、単なるラベルの場合は灰色のテキストを、ユーザーエントリの場合は黒のテキストを使用できます。また、テキストボックスを再入力した場合にユーザーの情報を削除しないように、テキストの色をテストすることもできます。

于 2012-11-13T20:28:59.640 に答える