VB6文本框中的默认幻像标题

VB6文本框中的默认幻像标题,vb6,Vb6,如何在VB6.0中执行此操作 当文本框为空时,文本框中有一个默认标题,比如说“在此处输入名称”。但当用户填写时,标题将被替换 如果希望在用户选择文本框开始键入之前在文本框中输入默认值: 对文本框使用GotFocus()事件,并插入以下内容作为代码:txtName.text=”“ 在LostFocus()事件中,使用: If txtName.text = "" Then txtName.text = "Enter Name Here" End If 如果希望在用户选择文本框开始键入之前在文本框中

如何在VB6.0中执行此操作

当文本框为空时,文本框中有一个默认标题,比如说“在此处输入名称”。但当用户填写时,标题将被替换


如果希望在用户选择文本框开始键入之前在文本框中输入默认值:

对文本框使用GotFocus()事件,并插入以下内容作为代码:
txtName.text=”“

在LostFocus()事件中,使用:

If txtName.text = "" Then
txtName.text = "Enter Name Here"
End If

如果希望在用户选择文本框开始键入之前在文本框中输入默认值:

对文本框使用GotFocus()事件,并插入以下内容作为代码:
txtName.text=”“

在LostFocus()事件中,使用:

If txtName.text = "" Then
txtName.text = "Enter Name Here"
End If

本机win32替代方案:

Private Const ECM_FIRST As Long = &H1500
Private Const EM_SETCUEBANNER As Long = (ECM_FIRST + 1)

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function InitCommonControls Lib "comctl32" () As Long

Private Sub Form_Initialize()
    InitCommonControls
End Sub

Private Sub Form_Load()
    Dim sCueCaption As String
    sCueCaption = StrConv("Enter Name Here", vbUnicode)
    Call SendMessage(Text1.hwnd, EM_SETCUEBANNER, 0&, ByVal sCueCaption)
End Sub
这需要一个清单,以便将以下内容保存为“
.exe.manifest
”(也可以使用资源)


在此处输入您的描述

本机win32替代方案:

Private Const ECM_FIRST As Long = &H1500
Private Const EM_SETCUEBANNER As Long = (ECM_FIRST + 1)

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function InitCommonControls Lib "comctl32" () As Long

Private Sub Form_Initialize()
    InitCommonControls
End Sub

Private Sub Form_Load()
    Dim sCueCaption As String
    sCueCaption = StrConv("Enter Name Here", vbUnicode)
    Call SendMessage(Text1.hwnd, EM_SETCUEBANNER, 0&, ByVal sCueCaption)
End Sub
这需要一个清单,以便将以下内容保存为“
.exe.manifest
”(也可以使用资源)


在此处输入您的描述
自Windows XP以来,Windows API已内置(或提示文本)。VB6不会直接公开它,但这不会阻止您通过进行一些API调用来实现它

与实现您自己的自定义样式相比,走这条路线有几个优点。首先,它已经是免费的,这意味着你只需要做很少的工作就可以使用它。其次,它已经经过全面测试和专业抛光。第三,它将在下一个Windows版本发布时自动升级

您需要的所有代码都可以在此处找到:

正如页面所解释的,您需要确保在EXE中包含清单,以便能够利用Windows XP的主题和功能。代码中唯一真正棘手的部分是,您需要确保传递一个Unicode字符串

最终效果如下所示:

自Windows XP以来,Windows API已内置(或提示文本)。VB6不会直接公开它,但这不会阻止您通过进行一些API调用来实现它

与实现您自己的自定义样式相比,走这条路线有几个优点。首先,它已经是免费的,这意味着你只需要做很少的工作就可以使用它。其次,它已经经过全面测试和专业抛光。第三,它将在下一个Windows版本发布时自动升级

您需要的所有代码都可以在此处找到:

正如页面所解释的,您需要确保在EXE中包含清单,以便能够利用Windows XP的主题和功能。代码中唯一真正棘手的部分是,您需要确保传递一个Unicode字符串

最终效果如下所示:


他指的是提示或占位符。他指的是提示或占位符。@Sourav:请不要在评论中乞求投票。已经三分钟了;无论如何,没有人能这么快接受你的回答。对此我很抱歉。我看了你最近的问题,但没有一个与我所知道的有关。否则,我很乐意帮忙。我不知道这和乞求选票有什么关系,但是…我不明白为什么这个答案被接受。它显示标签控件上的标题,而不是文本框本身。其他的解决方案似乎都更合适,也更符合提问者的要求。如果要使用单独的标签控件来显示提示文本,不清楚为什么不能一直显示标签文本。您需要隐藏它的唯一原因是,它实际上显示在文本框中,并且在用户开始键入时需要避开。在VB 6.0中,文本框不能有标题,但标签可以!是的,它可以。该属性称为
Text
,每个
TextBox
控件都有该属性。它获取/设置文本框本身中显示的内容。您尚未提供问题的答案(“文本框为空时,文本框中有默认标题,请说“在此处输入名称”。但当用户填写时,标题将被替换…”)。这让人难以置信,询问者是如何接受的。@Sourav:请不要在评论中乞求投票。已经三分钟了;无论如何,没有人能这么快接受你的回答。对此我很抱歉。我看了你最近的问题,但没有一个与我所知道的有关。否则,我很乐意帮忙。我不知道这和乞求选票有什么关系,但是…我不明白为什么这个答案被接受。它显示标签控件上的标题,而不是文本框本身。其他的解决方案似乎都更合适,也更符合提问者的要求。如果要使用单独的标签控件来显示提示文本,不清楚为什么不能一直显示标签文本。您需要隐藏它的唯一原因是,它实际上显示在文本框中,并且在用户开始键入时需要避开。在VB 6.0中,文本框不能有标题,但标签可以!是的,它可以。该属性称为
Text
,每个
TextBox
控件都有该属性。它获取/设置文本框本身中显示的内容。您尚未提供问题的答案(“文本框为空时,文本框中有默认标题,请说“在此处输入名称”。但当用户填写时,标题将被替换…”)。这让人难以置信,询问者是如何接受这一点的。Form_Initialize调用InitCommonControls通常为时已晚,请改为在Sub-Main中进行初始化。此外,您还会发现,除非在调用Init之前加载Shell32.dll,否则有时甚至会崩溃