2015-10-07 31 views
0

我正在製作一個需要登錄系統的程序。我想要做的是有一個包含單詞'用戶名'的文本框,當用戶點擊它時,'用戶名'文本被覆蓋。例如,Spotify的使用它自己的登錄屏幕上:如何啓用覆蓋文本框中的文本?

enter image description here

我的問題是,我該怎麼辦呢?

+0

我想看看像Infragistics這樣的第三方控件。開箱即用的.NET控件無法做到這一點。 –

+0

在Winform上實現它會非常容易。基本上,您可以將文本框的初始文本設置爲前綴爲灰色的「用戶名」。當用戶選擇文本框時,文本將消失,前景色將變爲黑色。 – ChicagoMike

+0

請參閱[WinForms中的水印文本框](http://stackoverflow.com/q/4902565/719186)。它也被稱爲「提示橫幅」或「幽靈文本」。 – LarsTech

回答

0

將用於用戶名的TextBoxText屬性設置爲字符串"Username"。然後,在TextBoxClick事件中,將其更改爲空白字符串。像這樣:

Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click 
    TextBox1.Text = "" 
End Sub 

編輯: 作爲@LarsTech提到的,這並沒有解決,如果用戶切換到TextBox。如果你想以考慮過,使用TextBoxEnter事件,而不是:

Private Sub TextBox1_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter 
    TextBox1.Text = "" 
End Sub 
0

我同意,使用Textbox1.Enter是最簡單的解決方案。在頂部,你還可以趕上沒有通過TextBox1.Leave進入這樣的

Private Sub TextBoxLeaveHandle() Handles TextBox1.Leave 
    If TextBox1.Text = "" Then 
     TextBox1.Text = "Username" 
    End If 
End Sub 

文本的情況下,有時也可以是使用TextBox.SelectAll()功能非常有用,因爲它不會立即(從名字明顯)刪除整個文本,但選擇整個文本,所以你可以用你的第一個按鍵覆蓋它。