【问题标题】:progress bar and timer进度条和计时器
【发布时间】:2017-08-10 08:59:49
【问题描述】:

我的 c# windows 窗体有问题。期望是当我加载 form2 时,计时器应该启动并增加进度条。酒吧本身只是一个虚拟酒吧,因为它实际上并没有做太多事情。完成后会弹出一个窗口。目前我只是想让它动起来。

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

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

    void timer1_Tick(object sender, EventArgs e)
    {
        if (progressBar1.Value != 10)
        {
            progressBar1.Value++;
        }
        else
        {
            timer1.Stop();
        }

    }
}

【问题讨论】:

  • 在设置好计时器后启动计时器是明智的......!
  • “期望是当我加载 form2 时,计时器应该启动并增加进度条。”当我尝试你的代码时,这个期望被确认为 100%。您遇到的实际问题是什么?
  • 你忘了告诉你哪里错了......乍一看代码看起来很好,当你运行它时会发生什么?
  • 您是如何创建 f2_Load btw 的?双击设计器应该已经创建了 Form2_Load。因此,要么您已将其显式重命名为 f2_Load,要么您刚刚创建了 f2_Load 但从未挂钩 Form2_Load 的事件处理程序

标签: c# winforms timer progress-bar


【解决方案1】:

请尝试手动注册Load事件:

public Form2()
{
    InitializeComponent();

    this.Load += f2_Load;
}

【讨论】:

  • 谢谢你,Yvette Colomb 的回复修复了它。
【解决方案2】:

双击设计器中的表单应该会给您Load 事件。

    private void Form2_Load(object sender, EventArgs e)
    {...}

注意Form2_Load中的Form2

否则,手动创建加载事件并将其连接起来。

public Form2()
{
    InitializeComponent();
    this.Load += f2_Load;
}
public void f2_Load(object sender, EventArgs e)
{...}

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多