UWP 发送短信公用倒计时按钮

本文介绍了一种验证码倒计时功能的实现方法,通过一个公共类管理不同界面上的验证码按钮,确保所有按钮共享同一倒计时逻辑,避免用户短时间内重复请求。
1.要求:
     发送验证码按钮,点击后,会倒计时60s,之后才能再次点击。不同界面的多个验证码按钮共享这个倒计时时间。
2.操作步骤
      1) 从登录界面-->忘记密码输入手机号-->下一步-->倒计时60s
      2) 返回到注册页面-->输入手机号码-->下一步-->获取计时器倒计时到48s,然后从48s继续倒计时
      3) 登录到个人中心-->账户安全-->修改登录密码-->获取计时器倒计时35s,然后从35s继续倒计时
      4) 返回到个人中心-->账户安全-->修改支付密码-->获取计时器倒计时25s,然后从25s继续倒计时
3.我写了个公用的方法如下:
 1     /// <summary>
 2     /// 倒计时类(发送验证码按钮,点击后,会倒计时60s,之后才能再次点击。不同界面的多个验证码按钮共享这个倒计时时间。)同一手机号码1分钟只能发1条;
 3     /// </summary>
 4     public static class CountDown
 5     {
 6         /// <summary>
 7         /// 倒计时60秒
 8         /// </summary>
 9         public static int stTimeCount = 0;
10       
11         /// <summary>
12         /// 倒计时60s方法
13         /// </summary>
14         /// <param name="btnCode"></param>
15         /// <param name="timeCount"></param>
16         public static void ShowCountDown(Button btnCode, int timeCount)
17         {
18             stTimeCount = timeCount;
19             DispatcherTimer dispatcherTimer = new DispatcherTimer();
20             dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
21             dispatcherTimer.Start();
22             int count = stTimeCount;
23             int i = 0;
24             dispatcherTimer.Tick += delegate
25             {
26                 if (count > 0)
27                     count--;
28                 //倒计时:设置按钮的值,以及按钮不可点击
29                 btnCode.Content = count + " S ";
30                 btnCode.IsEnabled = false;
31                 stTimeCount = count;
32                 if (count == i)
33                 {
34                     //倒计时完成: 设置按钮的值,以及按钮可用
35                     dispatcherTimer.Stop();
36                     btnCode.Content = "获取验证码";
37                     btnCode.IsEnabled = true;
38                     stTimeCount = count ;
39                 }
40             };
41         }
42     }

4.修改登录密码界面构造函数中进行调用

 1     public SetLoginPwd()
 2         {
 3             this.InitializeComponent();
 4 
 5             //获取倒计时60秒是否有值,有值则继续倒计时
 6             if (CountDown.stTimeCount > 0)
 7             {
 8                 CountDown.ShowCountDown(btnCode, CountDown.stTimeCount);
 9             }
10         }

 

转载于:https://www.cnblogs.com/qq-smile/p/7273604.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值