如何使DispatcherTimer在文本框中显示时间,并在达到特定时间时执行动作
本文关键字:定时间 执行 文本 DispatcherTimer 何使 时间 显示 | 更新日期: 2023-09-27 18:14:59
这是我在StackOverflow上的第二个问题。我发布了我的第一个问题前一段时间,并得到了一个工作的答复,非常印象深刻,非常感激。
无论如何,所以我想知道的是,如何获得DispatcherTimer的工作和显示时间在一个特定的文本框,并停止它,当它达到一定的时间(让我们说60秒),并在60秒后执行一个功能。
我使用这个的主要目的是:
制作一款必须在60秒后停止并显示分数或相关内容的游戏。因此,这需要我在文本框中显示时间,并在60秒或之后执行函数。
这里有更多信息:
文本框名为"timerbox"
下面是我试过的代码:
DispatcherTimer dt = new DispatcherTimer();
private void TimerStart(object sender, RoutedEventArgs e)
{
dt.Interval = TimeSpan.FromSeconds(1);
dt.Tick += dt_Tick;
dt.Start();
}
int count = 0;
void dt_Tick(object sender, object e)
{
count = count + 1;
timerbox.Text = Convert.ToString(count);
}
它不显示时间在文本框中,而且我不知道如何使它停止在某个点并执行一个功能。
谢谢你来到这里,请留下答案和完整的解释,因为我是一个完整的初学者:)
注:我在Visual Studio 2013中使用Windows Store应用程序开发环境。并且没有像普通c#环境那样的"Timer"
AOA。我最近开始学习c#。(对Windows窗体应用程序感兴趣)。希望对你有帮助。
如果你只想为幕布事件设置定时器.....
建议您使用定时器(在工具箱中)......
按照步骤,当你双击timer1 VS将为你创建一个timer1_Tick函数,它将在你计时器滴答.....的每一个计时器被调用现在你想做的是,当timer1出现的时候把它写在这里....像这样…
private void timer1_Tick(object sender, EventArgs e)
{
//enter your code here
}
现在写time1。VS将显示可用函数的列表....例如,
timer1.Interval = (60*1000); //enter time in milliseconds
现在当你想开始写......
timer1.Start();
和停止定时器在任何定时器调用
timer1.Stop();
如果你想重复计时器只需在滴答函数中写入timer1.start() .....
加,设置文本框的文本等于timer1时间使用类似
textBox1.Text = Convert.ToString(timer1.Interval);
点击这里了解更多关于定时器类的信息
希望这对你有帮助,如果有任何混淆,请注释.....
DispatcherTimer的正常流程是这样的:
-
首先设置你的新对象,设置一个新的EventHandler,它将运行你想要的代码,并设置所需的时间间隔
public MainPage() { this.InitializeComponent(); timer = new DispatcherTimer(); timer.Tick += new EventHandler<object>(timer_Tick); timer.Interval = TimeSpan.FromMilliseconds(bpm); }
-
设置Timer_Tick事件
async Void timer_Tick(object Sender, object e) { await this.Dispatcher.RunAsync(Windows.UI.core.CoreDispatcherPriority.High, () => { //Run the Code textBox1.text = timer.interval.TotalMilliseconds.ToString(); });
-
你必须有一个触发器来启动调度程序(并在需要时停止),例如一个按钮
private void StartButton_Click() { timer.Start(); }
-
这个例子是在VS2015中使用新的windows 10通用应用程序平台完成的,但我认为它应该在正常的windows 8应用程序
中看起来是一样的。