如何使用VB做出水印字体

水印字体,我们随处可见,比如说QQ登录界面
在这里插入图片描述
水印字体的作用就是美观,简洁,一个text文本框既能输入文本,又能提示信息。那么,如何在VB中实现这个功能呢?就拿我们都有接触的机房来说,怎样实现这个功能,优化登录界面?
在VB中实现水印字体,首先要弄明白水印字体的关键,在text文本框为空时,提示输入信息,当获得焦点或文本框有内容时,提示信息消失,并能显示输入信息,这就是水印字体的原理所在了。
接下来就是要思考在VB中实现水印字体的功能一共涉及到几个事件呢?经过考虑,实现水印字体一共涉及到两个事件,一个是获得焦点事件,另一个是失去焦点事件。当用户名框获得焦点时,清空文本框提示信息,显示用户输入的信息,当点击密码文本框时,用户名文本框输入的信息不能被清空。
效果如下图
在这里插入图片描述
当输入用户名“11”后,原用户名提示信息消失
在这里插入图片描述
当输入密码后,用户名依旧在,密码提示信息消失,密码输入不可见
水印字体的整体效果图如下,以机房登录界面为例
在这里插入图片描述
水印字体代码展示

用户名获得焦点事件
Private Sub txtUserID_GotFocus()
    If (txtUserID.Text = "请输入用户名") Then
        txtUserID.Text = ""
        txtUserID.ForeColor = QBColor(0)
        txtUserID.FontItalic = False
        txtUserID.FontSize = 16

    End If
End Sub
用户名失去焦点事件
Private Sub txtUserID_LostFocus()
    If txtUserID.Text = "" Then
        txtUserID.Text = "请输入用户名"
        txtUserID.ForeColor = QBColor(8)
        txtUserID.FontItalic = True
        txtUserID.Font = "隶书"
        txtUserID.FontSize = 16
    End If

End Sub
‘密码获得焦点事件
Private Sub txtPWD_GotFocus()
    If (txtPWD.Text = "请输入登录密码" Or txtPWD.Text = "") Then    '获取焦点时
        txtPWD.Text = ""            '清空txt框
        txtPWD.PasswordChar = "*"   '输入的文本被隐藏
        txtPWD.ForeColor = QBColor(0)
        txtPWD.FontItalic = False
        txtPWD.FontSize = 16
    End If
End Sub
密码失去焦点事件
Private Sub txtPWD_LostFocus()
    If txtPWD.Text = "" Then
        txtPWD.Text = "请输入登录密码"
        txtPWD.PasswordChar = ""
        txtPWD.ForeColor = QBColor(8)
        txtPWD.FontItalic = True
        txtPWD.Font = "隶书"
        txtPWD.FontSize = 16
    End If
End Sub

不要以为到这就结束了,就能实现水印字体功能了,在form窗体上也是有代码的,用来显示运行窗体时的效果展示

  txtUserID.Text = "请输入用户名"
     txtUserID.ForeColor = QBColor(8)
     txtUserID.FontItalic = True
     txtUserID.Font = "隶书"
     txtUserID.FontSize = 18
     
     txtPWD.Text = "请输入登录密码"
     txtPWD.ForeColor = QBColor(8)
     txtPWD.FontItalic = True
     txtPWD.Font = "隶书"
     txtPWD.FontSize = 18

此时虽然已经实现了水印字体的功能,但并不完美,因为可能打开登录界面输入用户名框直接获得焦点,就像这样
在这里插入图片描述
原因是VB获得焦点的顺序是根据索引值的大小来排序的,哪个控件的索引值最小,运行程序时最先获得焦点
把命令按钮的索引值设为0即可
在这里插入图片描述
我已经分享完了,你学会了吗?欢迎大家评论区留言!

猜你喜欢

转载自blog.csdn.net/qq_42758288/article/details/85102938