VB.NETTextBox的提⽰⽂字
VB 中,TextBox 控件如何显⽰提⽰⽂字?(密码输⼊框)
⽤灰⾊显⽰“请输⼊密码”,当⿏标点击的时候灰⾊的字就消失。当输⼊框中没有内容并且焦点离开输⼊框的时候⼜恢复提⽰⽂字。
这样的效果经常见于⽹页当中,如果想把它放进Windows窗体中,请往下看
其实是利⽤了Windows Vista中的新API,使⽤ SendMessage 函数向⽬标⽂本框发送EM_SETCUEBANNER 消息
先声明SendMessage API:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
textbox控件边框设置
(ByVal hwnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As IntPtr, _
ByVal lParam As Byte()) _
As Integer
然后是 EM_SETCUEBANNER 的定义
Public Const EM_SETCUEBANNER As Integer = &H1501
其中 As Integer 可选
窗体设计如下:
单击"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
<span><span >程序运⾏后,单击SetText按钮,输⼊提⽰信息。TextBox会在失去焦点时显⽰提⽰语⾔,得到焦点时提⽰语消失。</span></span>