using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CommonLibrary
{
///
/// 一个简单的修改密码的类
///
public partial class FormPasswordModify : Form
{
///
/// 实例化一个密码修改窗口,需要指定密码修改的方法
///
/// 旧密码,需要用来验证权限
/// 修改密码的真正方法
/// 指定密码长度最小值,可不提供
/// 指定密码长度最大值,可不提供
public FormPasswordModify(string password_old,
Func submitMethod,
int passwordLengthMin = 4,
int passwordLengthMax = 8)
{
InitializeComponent();
PasswordLengthMin = passwordLengthMin;
PasswordLengthMax = passwordLengthMax;
PasswordOriginal = password_old;
SubmitMethod = submitMethod;
}
private void FormPasswordModify_Load(object sender, EventArgs e)
{
Text = "密码修改 [务必不要使用简单的密码] ";
timer1.Interval = 1000;
timer1.Tick += Timer1_Tick;
label4.Text = $"剩余修改时间:{WaittingTime}秒";
}
private void Timer1_Tick(object sender, EventArgs e)
{
if (WaittingTime > 0)
{
label4.Text = $"剩余修改时间:{WaittingTime--}秒";
}
else
{
WaittingTime = 120;
panel1.Visible = false;
label4.Text = $"剩余修改时间:{WaittingTime}秒";
textBox2.Text = "";
textBox3.Text = "";
textBox1.Enabled = true;
userButton1.Enabled = true;
timer1.Stop();
}
}
private int WaittingTime { get; set; } = 120;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
userButton1.PerformClick();
}
}
private void FormPasswordModify_Shown(object sender, EventArgs e)
{
textBox1.Focus();
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox3.Focus();
}
}
private void userButton1_Click(object sender, EventArgs e)
{
//验证原密码
if (textBox1.Text == PasswordOriginal)
{
textBox1.Enabled = false;
userButton1.Enabled = false;
panel1.Visible = true;
textBox2.Focus();
timer1.Start();
}
else
{
MessageBox.Show("密码验证错误!");
}
}
private string PasswordOriginal { get; set; } = "";
private int PasswordLengthMin { get; set; } = 4;
private int PasswordLengthMax { get; set; } = 8;
private Func SubmitMethod = null;
private void userButton2_Click(object sender, EventArgs e)
{
if (textBox2.Text.Length >= PasswordLengthMin &&
textBox2.Text.Length <= PasswordLengthMax)
{
if (textBox2.Text != textBox3.Text)
{
MessageBox.Show("两次密码不一致,请重新输入");
}
else
{
if (SubmitMethod == null)
{
MessageBox.Show("该功能未实现!");
}
else
{
if (SubmitMethod(textBox2.Text))
{
MessageBox.Show("密码更新成功!");
}
else
{
MessageBox.Show("密码更新失败!请稍候重试!");
}
}
}
}
else
{
MessageBox.Show($"密码长度不正确,请控制在{PasswordLengthMin}-{PasswordLengthMax}位之间");
}
}
private void FormPasswordModify_FormClosing(object sender, FormClosingEventArgs e)
{
timer1.Stop();
}
}
}