天天看點

[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的提示文字
示例代碼下載下傳位址:      
點選下載下傳      

繼續閱讀