我正在制作一个需要登录系统的程序。我想要做的是有一个包含单词'用户名'的文本框,当用户点击它时,'用户名'文本被覆盖。例如,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