学生管理系统之“止Text控件粘贴复制和判断新旧密码是否一致”

    1.   萌生这一想法是在修改验证旧密码的时候想出来的,过去的时候有一次验证密码的时候不能粘贴复制,于是就自己试着看看能不能实现这一功能,事实证明,成功了,可能不是很完善,但是一开始也遇到了很多的问题,想设置Ctrl+c和Ctrl+v以及Ctrl+x禁止复制,粘贴和剪切。代码如下:

​Private Sub txtpassword2_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = 86 Or KeyCode = 67 Or KeyCode = 88) And Shift = 2 Then
        MsgBox "不能粘贴复制",oKOnly + vbExclamation, "警告"
        txtpassword2.Text = ""
    End If
End Sub

Private Sub txtpassword1_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = 86 Or KeyCode = 67 Or KeyCode = 88) And Shift = 2 Then
        MsgBox "不能粘贴复制", vbOKOnly + vbExclamation, "警告"
        txtpassword1.Text = ""
    End If
End Sub
​

shift在vb中有很大的用途:

Shift是用来指示Ctrl Shift Alt 等按键有哪些被按下用的
Shift键 1
Ctrl键 2
Alt键 4
如果Shift=1的话,就说明只按下了
Shift键
如果Shift=2的话,就说明只按下了Ctrl键
如果Shift=3的话,就说明同时按下了Ctrl键Shift键
如果Shift=4的话,就说明只按下了Alt键
如果Shift=5的话,就说明同时按下了Shift键和Alt键
如果Shift=6的话,就说明同时按下了Ctrl键和Alt键

在此次代码中设置shift=2意为ctrl按下时,执行下面操作

2.验证原密码是否正确

当修改密码的时候直接修改密码未免不是很严谨,所以尽量验证一下原密码,进行完善,所以完善后的窗体也会有所改变

既然验证原密码就难免会用到数据库的

Private Sub cmdok_click()
    Dim txtSQL, Msgtext As String
    Dim mrc As ADODB.Recordset
    '判断原密码是否正确
    txtSQL = "select*from user_info where user_ID='" & UserName & "'"
    Set mrc = ExecuteSQL(txtSQL, Msgtext)
    
    If Trim(txtOld.Text) <> Trim(mrc.Fields(1)) Then
        MsgBox "原密码输入不正确", vbOKOnly + vbExclamation, "警告"
            txtOld.SetFocus
            txtOld.Text = ""
            txtpassword1.Text = ""
            txtpassword2.Text = ""
        Exit Sub
    End If
    
    '判断是否为空和两次输入是否一致
    If Trim(txtpassword1.Text) <> Trim(txtpassword2.Text) Then
        MsgBox "两次密码不一致,请重新输入!", vbOKOnly + vbExclamation, "警告"
        txtpassword1.SetFocus
        txtpassword1.Text = ""
        txtpassword2.Text = ""
    Else
        If txtpassword1.Text = "" Then
            MsgBox "密码不能为空", vbOKOnly + vbExclamation, "警告"
            txtpassword1.SetFocus
            txtpassword1.Text = ""
            txtpassword2.Text = ""
            txtOld.Text = ""
        Else
            If Trim(txtOld.Text) = Trim(txtpassword1.Text) Then
                MsgBox "新旧密码不能相同", vbOKOnly + vbExclamation, "警告"
                txtpassword1.Text = ""
                txtpassword2.Text = ""
                txtOld.Text = ""
            Else
                txtSQL = "select*from user_info where user_Id='" & UserName & " '"
                Set mrc = ExecuteSQL(txtSQL, Msgtext)
                mrc.Fields(1) = txtpassword1.Text
                mrc.Update
                mrc.Close
                MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
                Me.Hide
            End If
        End If
    End If
    txtpassword1.Text = ""
    txtpassword2.Text = ""
    txtOld.Text = ""
End Sub

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/86510729