1.要求:
发送验证码按钮,点击后,会倒计时60s,之后才能再次点击。不同界面的多个验证码按钮共享这个倒计时时间。
2.操作步骤
1) 从登录界面-->忘记密码输入手机号-->下一步-->倒计时60s
2) 返回到注册页面-->输入手机号码-->下一步-->获取计时器倒计时到48s,然后从48s继续倒计时
3) 登录到个人中心-->账户安全-->修改登录密码-->获取计时器倒计时35s,然后从35s继续倒计时
4) 返回到个人中心-->账户安全-->修改支付密码-->获取计时器倒计时25s,然后从25s继续倒计时
3.我写了个公用的方法如下:
/// <summary>
/// 倒计时类(发送验证码按钮,点击后,会倒计时60s,之后才能再次点击。不同界面的多个验证码按钮共享这个倒计时时间。)同一手机号码1分钟只能发1条;
/// </summary>
public static class CountDown
{
/// <summary>
/// 倒计时60秒
/// </summary>
public static int stTimeCount = ; /// <summary>
/// 倒计时60s方法
/// </summary>
/// <param name="btnCode"></param>
/// <param name="timeCount"></param>
public static void ShowCountDown(Button btnCode, int timeCount)
{
stTimeCount = timeCount;
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Interval = new TimeSpan(, , );
dispatcherTimer.Start();
int count = stTimeCount;
int i = ;
dispatcherTimer.Tick += delegate
{
if (count > )
count--;
//倒计时:设置按钮的值,以及按钮不可点击
btnCode.Content = count + " S ";
btnCode.IsEnabled = false;
stTimeCount = count;
if (count == i)
{
//倒计时完成: 设置按钮的值,以及按钮可用
dispatcherTimer.Stop();
btnCode.Content = "获取验证码";
btnCode.IsEnabled = true;
stTimeCount = count ;
}
};
}
}
4.修改登录密码界面构造函数中进行调用
public SetLoginPwd()
{
this.InitializeComponent(); //获取倒计时60秒是否有值,有值则继续倒计时
if (CountDown.stTimeCount > )
{
CountDown.ShowCountDown(btnCode, CountDown.stTimeCount);
}
}