如何使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"

如何使DispatcherTimer在文本框中显示时间,并在达到特定时间时执行动作

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的正常流程是这样的:

  1. 首先设置你的新对象,设置一个新的EventHandler,它将运行你想要的代码,并设置所需的时间间隔

    public MainPage()
    {
        this.InitializeComponent();            
        timer = new DispatcherTimer();
        timer.Tick += new EventHandler<object>(timer_Tick);
        timer.Interval = TimeSpan.FromMilliseconds(bpm);
    }
    
  2. 设置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();
    });
    
  3. 你必须有一个触发器来启动调度程序(并在需要时停止),例如一个按钮

    private void StartButton_Click() 
    {
    timer.Start();
    }
    
  4. 这个例子是在VS2015中使用新的windows 10通用应用程序平台完成的,但我认为它应该在正常的windows 8应用程序

  5. 中看起来是一样的。