我有一个计时器,可以在45秒内启用按钮
Device.StartTimer(new TimeSpan(0, 0, 45), EnableButtonResend);
private bool EnableButtonResend()
{
IsEnabledResend = true;
return true;
}
一切都很完美,我想在标签中显示按钮启用前的剩余时间。请稍等二十秒重新发送。有谁知道怎么做? 谢谢你的时间
答案 0 :(得分:0)
您可以在变量中启用时间:
DateTime dt = DateTime.Now.AddSeconds(45);
Device.StartTimer(new TimeSpan(0, 0, 45), EnableButtonResend);
SownRemaining();
虽然该时间尚未达到,但请调用更改标签文字的方法:
void ShowRemaing()
{
int a = (int)((dt - DateTime.Now).TotalSeconds);
if(a > 0)
{
SomeLabel.Text = $"{a} Seconds to enable";
Device.StartTimer(new TimeSpan(0, 0, 1), ShowRemaing);
}
}
private bool EnableButtonResend()
{
IsEnabledResend = true;
return true;
}
答案 1 :(得分:0)
这样的东西?
Device.StartTimer(new TimeSpan(0, 0, 1), EnableButtonResend);
int count = 0;
private bool EnableButtonResend()
{
if(count < 45) {
IsEnabledResend = true;
count++;
Button.SetText((45 - count) + " seconds remaining");
return true;
}
// Do your stuff or reset state
count = 0;
return false;
}
如果您在true
中返回EnableButtonResend
,定时器将继续重复发生,因此请每隔一秒设置一次间隔,并在需要时进行回调以更改标签。