今天教大家如何绘制一个简单的登录界面,加上一点动态效果,让它看起来更高级。
一、基本界面的绘制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
三、操作视频(15s)四、还需完善的地方这个登录界面还有很多东西没有完善,比如:基本的配色、图标、登录与取消、窗体最上方标题栏是否要去除都是需要考虑的。 对于登录的验证代码、文本框输入密码时的掩盖以及如何保存与读取账号密码,也是需要考虑的问题。 不仅可以使用文本框作为输入的控件,还可以使用组合框。
注:需要文件的,历史文章(Excel_VBA_不定期更新)拉到最下方,自取即可。
文件为:搭建一个简单的登录界面.xlsm
|