【问题标题】:Windows Form Doesn't Show C# TimerWindows 窗体不显示 C# 计时器
【发布时间】:2018-12-13 21:36:21
【问题描述】:

代码:

while ( int_Timer > 0 )
{
     int int_Ticks = 0;

     if ( int_Ticks < 100)
     {
         int_Ticks++;
     }

     if (int_Ticks == 100)
     {
         int_Timer--;
         lbl_Timer.Text = int_Timer.ToString();
     }
}

所以我基本上尝试制作一个计时器,但由于我实现了此代码,因此表单不会出现在任务栏中。事实上,唯一的迹象是 Visual Studio Debug 正在运行。

【问题讨论】:

  • 那么,你的“计时器”是那个循环吗?这是错误的做法。有几个可用的“计时器”类,其中之一是 Windows 窗体组件 - 请改用它。您没有看到任何内容的原因是您的代码正在进入该循环(可能在用户界面线程上)并永远循环。 Windows Forms 在同一线程上运行它自己的“消息处理器”。通过永远循环,您不会让消息处理器处理消息。

标签: c# windows forms if-statement timer


【解决方案1】:

进入 Windows 窗体工具箱。在“组件”下,找到“定时器”。将一个拖放到您的表单上。它不会显示在您放置它的位置(不可见),但会显示在下方的窗格中。

转到新计时器的属性(默认名为“timer1”)并更改:

  • 启用为true
  • 间隔到1000 毫秒,即一秒

双击表单设计器上的timer1 Timer 组件(位于底部)。这将为默认事件 (Tick) 创建一个处理程序。

使代码看起来像:

 private int _count = 0;
 private void timer1_Tick(object sender, EventArgs e)
 {
     ++_count;
     Tlbl_Timer.Text = _count.ToString();
 }

您应该会看到您的标签从 1 开始计数,然后一直向上直到溢出(大约 20 亿以北)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多