我正在製作一個需要登錄系統的程序。我想要做的是有一個包含單詞'用戶名'的文本框,當用戶點擊它時,'用戶名'文本被覆蓋。例如,Spotify的使用它自己的登錄屏幕上:如何啓用覆蓋文本框中的文本?
我的問題是,我該怎麼辦呢?
我正在製作一個需要登錄系統的程序。我想要做的是有一個包含單詞'用戶名'的文本框,當用戶點擊它時,'用戶名'文本被覆蓋。例如,Spotify的使用它自己的登錄屏幕上:如何啓用覆蓋文本框中的文本?
我的問題是,我該怎麼辦呢?
將用於用戶名的TextBox
的Text
屬性設置爲字符串"Username"
。然後,在TextBox
的Click
事件中,將其更改爲空白字符串。像這樣:
Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click
TextBox1.Text = ""
End Sub
編輯: 作爲@LarsTech提到的,這並沒有解決,如果用戶切換到TextBox
。如果你想以考慮過,使用TextBox
的Enter
事件,而不是:
Private Sub TextBox1_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter
TextBox1.Text = ""
End Sub
我同意,使用Textbox1.Enter
是最簡單的解決方案。在頂部,你還可以趕上沒有通過TextBox1.Leave
進入這樣的
Private Sub TextBoxLeaveHandle() Handles TextBox1.Leave
If TextBox1.Text = "" Then
TextBox1.Text = "Username"
End If
End Sub
文本的情況下,有時也可以是使用TextBox.SelectAll()
功能非常有用,因爲它不會立即(從名字明顯)刪除整個文本,但選擇整個文本,所以你可以用你的第一個按鍵覆蓋它。
我想看看像Infragistics這樣的第三方控件。開箱即用的.NET控件無法做到這一點。 –
在Winform上實現它會非常容易。基本上,您可以將文本框的初始文本設置爲前綴爲灰色的「用戶名」。當用戶選擇文本框時,文本將消失,前景色將變爲黑色。 – ChicagoMike
請參閱[WinForms中的水印文本框](http://stackoverflow.com/q/4902565/719186)。它也被稱爲「提示橫幅」或「幽靈文本」。 – LarsTech