none
求帮忙修正添加灰色提示文字的代码 RRS feed

  • 问题

  • 我用VB创建一个界面,想要在里面的文本框中添加灰色的提示文字,单击后灰色文字消失然后可以输入黑色的文字,代码如下,但问题是输入好之后,每次用鼠标点到这个文本框的时候,已经输入的想要的东西就又变为空了,请教各位如何避免?

     Private Sub Form1_Load() 

            Text1.Text = "Enter your number"
            Text1.ForeColor = Color.Gray
        End Sub

        Private Sub Text1_GotFocus()
               Text1.Text = ""
                Text1.ForeColor = Color.Black
        End Sub

        Private Sub Text1_LostFocus()
            If Text1.Text = "" Then
                Text1.Text = "Enter your number"
                Text1.ForeColor = Color.Gray
            End If
        End Sub

    2012年5月22日 16:34

答案

  • Hi ElaineZ,

    对我的处理错误深表抱歉!我的方法是在gotfocus事件中,也根据text内容来判断是否需要改变forcolor。另外,enter the number灰色字体需要出来的话,需要在form_load的时候将焦点设置的其它的控件。

        Private Sub Form1_Load() Handles Me.Load
            Text1.Text = "Enter your number"
            Text1.ForeColor = Color.Gray
        End Sub
    
        Private Sub Text1_GotFocus() Handles Text1.GotFocus
            '如lost focus一样,如果text是提示的输入的文本“enter the number”,就清除掉,不是则不清除
            If Text1.Text = "Enter your number" Then
                Text1.Text = ""
            Else
                Text1.SelectAll()
            End If
            Text1.ForeColor = Color.Black
        End Sub
    
        Private Sub Text1_LostFocus() Handles Text1.LostFocus
            If Text1.Text = "" Then
                Text1.Text = "Enter your number"
                Text1.ForeColor = Color.Gray
            End If
        End Sub
    Regards,


    Shanks Zen
    MSDN Community Support | Feedback to us

    • 已标记为答案 ElaineZ 2012年5月24日 14:24
    2012年5月24日 6:16

全部回复

  • 您好,

    本版块主要讨论VB.NET相关主题,而本主题是与VB6相关,所以我将此主题移动到一般性问题讨论区。 感谢您的理解与支持!

    Best regards,


    Shanks Zen
    MSDN Community Support | Feedback to us

    2012年5月24日 3:08
  • 我用的不是VB6,就是VS2008里VB.net。。。
    2012年5月24日 4:39
  • Hi ElaineZ,

    对我的处理错误深表抱歉!我的方法是在gotfocus事件中,也根据text内容来判断是否需要改变forcolor。另外,enter the number灰色字体需要出来的话,需要在form_load的时候将焦点设置的其它的控件。

        Private Sub Form1_Load() Handles Me.Load
            Text1.Text = "Enter your number"
            Text1.ForeColor = Color.Gray
        End Sub
    
        Private Sub Text1_GotFocus() Handles Text1.GotFocus
            '如lost focus一样,如果text是提示的输入的文本“enter the number”,就清除掉,不是则不清除
            If Text1.Text = "Enter your number" Then
                Text1.Text = ""
            Else
                Text1.SelectAll()
            End If
            Text1.ForeColor = Color.Black
        End Sub
    
        Private Sub Text1_LostFocus() Handles Text1.LostFocus
            If Text1.Text = "" Then
                Text1.Text = "Enter your number"
                Text1.ForeColor = Color.Gray
            End If
        End Sub
    Regards,


    Shanks Zen
    MSDN Community Support | Feedback to us

    • 已标记为答案 ElaineZ 2012年5月24日 14:24
    2012年5月24日 6:16
  • 没关系啦~你也是好意~还是多谢你的帮助。
    2012年5月24日 7:37