Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows窗体没有';不显示C#计时器_C#_Windows_Forms_If Statement_Timer - Fatal编程技术网

Windows窗体没有';不显示C#计时器

Windows窗体没有';不显示C#计时器,c#,windows,forms,if-statement,timer,C#,Windows,Forms,If Statement,Timer,代码: while(整数计时器>0) { int_Ticks=0; 如果(整数刻度

代码:

while(整数计时器>0)
{
int_Ticks=0;
如果(整数刻度<100)
{
int_++;
}
如果(整数刻度==100)
{
int_定时器--;
lbl_Timer.Text=int_Timer.ToString();
}
}

因此,我基本上尝试制作一个计时器,但是,由于我实现了这段代码,表单不会出现在任务栏中。实际上,唯一的指示是Visual Studio调试正在运行。

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

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

  • 启用至true
  • 1000毫秒的间隔,即1秒
双击表单设计器(底部)上的
timer1
Timer组件。这将为默认事件创建一个处理程序(
勾选

使代码看起来像:

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();
     }
}
你应该看到你的标签从1开始计数,直到溢出为止(大约在20亿的北部)。

那么,你的“计时器”就是那个循环?那是错误的做法。有几个“计时器”类可用,其中一个是Windows窗体组件—请改用它。你看不到任何东西的原因是你的代码进入了循环(很可能在用户界面线程上)并永远循环。Windows窗体在同一个线程上运行自己的“消息处理器”。通过永远循环,您不会让消息处理器处理消息。
 private int _count = 0;
 private void timer1_Tick(object sender, EventArgs e)
 {
     ++_count;
     Tlbl_Timer.Text = _count.ToString();
 }