天天看点

[VB.NET]设置TextBox的提示文字

VB2008中,TextBox 控件如何显示提示文字?(密码输入框) 

用灰色显示“请输入密码”,当鼠标点击的时候灰色的字就消失。当输入框中没有内容并且焦点离开输入框的时候又恢复提示文字。

这样的效果经常见于网页当中,如果想把它放进Windows窗体中,请往下看

语言:Visual Basic 2005/2008

其实是利用了Windows Vista中的新API,使用 SendMessage 函数向目标文本框发送EM_SETCUEBANNER 消息

先声明SendMessage API:

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                                (ByVal hwnd As IntPtr, _
                                 ByVal wMsg As Integer, _
                                 ByVal wParam As IntPtr, _
                                 ByVal lParam As Byte()) _
                                 As Integer       

然后是EM_SETCUEBANNER 的定义

其中 As Integer 可选

窗体设计如下:

[VB.NET]设置TextBox的提示文字

单击"SetText”按钮,设置提示文本,单击“Focus”按钮,将焦点从文本框上移除。

下面是SetText按钮的代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'Set TipText
    Dim text = InputBox("Please Input TipText", "Input TipText", "This is a Tip Text")
    'SendMessage API
    SendMessage(TextBox1.Handle, _
                         EM_SETCUEBANNER, _
                         IntPtr.Zero, _
                         System.Text.Encoding.Unicode.GetBytes(text))
End Sub       
程序运行后,单击SetText按钮,输入提示信息。TextBox会在失去焦点时显示提示语言,得到焦点时提示语消失。      
[VB.NET]设置TextBox的提示文字
示例代码下载地址:      
点击下载      

继续阅读