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 }

 

分享给朋友:
您可能感兴趣的文章:
随机阅读: