Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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
C# 使用带有进度条的计时器打开下一个窗体_C#_Timer_Progress Bar - Fatal编程技术网

C# 使用带有进度条的计时器打开下一个窗体

C# 使用带有进度条的计时器打开下一个窗体,c#,timer,progress-bar,C#,Timer,Progress Bar,这是一个非常粗糙的代码,我在C#还是个新手,我不知道我的代码有什么问题。它使用计时器和进度条。不过我知道代码可能会更好,而且有点粗糙。。这是我第一个节目的一部分,我已经走得很远了 我的问题是,当使用计时器时进度条处于100%时,应该隐藏带有进度条的当前房间,然后切换到下一个房间。它能工作,但能打开下一个房间两次吗?我做错了什么?我希望代码最终在加载时也能做更多的事情,但不是现在:) 如果有人能帮我写这段代码,那就太好了!非常感谢 您正在订阅代码隐藏中的勾选事件 检查您是否也在Designer.c

这是一个非常粗糙的代码,我在C#还是个新手,我不知道我的代码有什么问题。它使用计时器和进度条。不过我知道代码可能会更好,而且有点粗糙。。这是我第一个节目的一部分,我已经走得很远了

我的问题是,当使用计时器时进度条处于100%时,应该隐藏带有进度条的当前房间,然后切换到下一个房间。它能工作,但能打开下一个房间两次吗?我做错了什么?我希望代码最终在加载时也能做更多的事情,但不是现在:)


如果有人能帮我写这段代码,那就太好了!非常感谢

您正在订阅代码隐藏中的
勾选事件

检查您是否也在
Designer.cs
文件中订阅了相同的事件(您可以检查设计器中的“属性”面板)

我猜您已经订阅了两次活动,因此活动中的所有事情都将发生两次,包括创建和打开
Form4
的新实例

解决方案是删除
timer1.Tick+=neweventhandler(timer1\u Tick)来自
表单加载
事件。

谢谢!:)这解决了我的问题;)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
     public partial class Form3 : Form
    {
       public Form3()
      {
         InitializeComponent();
      }

      private void Form3_Load(object sender, EventArgs e)
      {
         timer1.Enabled = true;
         timer1.Start();
         timer1.Interval = 1000;
         progressBar1.Maximum = 10;
         timer1.Tick += new EventHandler(timer1_Tick);
      }

      private void progressBar1_Click(object sender, EventArgs e)
      {
      }

      private void timer1_Tick(object sender, EventArgs e)
      {
         if (progressBar1.Value != 10)
         {
             progressBar1.Value++;
         }
        else
         {
             timer1.Stop();
             this.Hide();
             (new Form4()).Show();
         }
     }

     private void progressBar1_Click_1(object sender, EventArgs e)
     {

     }
   }
}