今天教大家如何绘制一个简单的登录界面,加上一点动态效果,让它看起来更高级。
1. 先插入一个窗体
2. 插入两个文本框,一个输入账户,一个输入密码
3. 插入两个按钮,一个是取消,一个是登录
4. 插入一个复选框,用于判断用户是否保存密码
二、代码示例
1. 在窗体里写入如下代码:
Dim tx1 As New cls_Activate_color, tx2 As New cls_Activate_color
Dim ct1 As New cls_Activate_color, ct2 As New cls_Activate_color
Private Sub CommandButton2_Click()'取消登录
Unload Me
End Sub
Private Sub UserForm_Initialize()
Me.TextBox1.SetFocus
'初始化时,控件绑定到类模块的事件
Set tx1.Tx = Me.TextBox1
Set tx2.Tx = Me.TextBox2
Set ct1.ct = Me.CommandButton1
Set ct2.ct = Me.CommandButton2
End Sub
2. 调用下面给出的类模块代码,实现一个随鼠标移动选择的效果:
'下面是类模块代码 类模块名称:cls_Activate_color
Public WithEvents Tx As MSForms.TextBox
Public WithEvents ct As MSForms.CommandButton
Private Sub ct_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ct.ForeColor = RGB(250, 0, 0)
ct.SetFocus
Dim c As Control
For Each c In UserForm1.Controls
tt = VBA.TypeName(c)
If VBA.TypeName(c) = 'CommandButton' And c.Name <> ct.Name Then
c.ForeColor = RGB(0, 0, 0)
ElseIf VBA.TypeName(c) = 'TextBox' Then
c.BorderColor = RGB(0, 0, 0)
End If
Next c
End Sub
Private Sub Tx_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Tx.BorderColor = RGB(250, 0, 0)
Tx.SetFocus
Dim c As Control
For Each c In UserForm1.Controls
If VBA.TypeName(c) = 'TextBox' And c.Name <> Tx.Name Then '其它文本框设置为黑色
c.BorderColor = RGB(0, 0, 0)
ElseIf VBA.TypeName(c) = 'CommandButton' Then
c.ForeColor = RGB(0, 0, 0)
End If
Next c
End Sub
这个登录界面还有很多东西没有完善,比如:基本的配色、图标、登录与取消、窗体最上方标题栏是否要去除都是需要考虑的。
对于登录的验证代码、文本框输入密码时的掩盖以及如何保存与读取账号密码,也是需要考虑的问题。
不仅可以使用文本框作为输入的控件,还可以使用组合框。
注:需要文件的,历史文章(Excel_VBA_不定期更新)拉到最下方,自取即可。
文件为:搭建一个简单的登录界面.xlsm
联系客服