【问题标题】:Increase a ProgressBar with Timer in WinForms [closed]在 WinForms 中使用 Timer 增加 ProgressBar [关闭]
【发布时间】:2011-08-31 15:34:12
【问题描述】:

我有一个间隔为 1 分钟的计时器,我想同时增加一个进度条。我正在使用 Winforms 和 C#。我该怎么做?

请帮帮我

【问题讨论】:

    标签: c# winforms visual-studio-2010


    【解决方案1】:

    这是一个如何使用带有进度条的Timer 控件的示例。首先,创建一个新的Timer 和一个ProgressBar。然后,使用此函数开始加载表单的时间:

    timer1.Enabled = true; // Enable the timer.
    timer1.Start();//Strart it
    timer1.Interval = 1000; // The time per tick.
    

    然后,为tick创建一个事件,如图:

    timer1.Tick += new EventHandler(timer1_Tick);
    

    创建事件的函数:

    void timer1_Tick(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
    

    在此之后,将代码添加到为进度条添加值的刻度函数中,类似于:

    progressBar1.Value++;
    

    不要忘记为进度条设置一个最大值,您可以通过将此代码添加到form_load 函数来实现:

    progressBar1.Maximum = 10; // 10 is an arbitrary maximum value for the progress bar.
    

    另外,不要忘记检查最大值,这样您的计时器就会停止。您可以使用以下代码停止计时器:

    timer1.Stop();
    

    完整代码:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        private void Form1_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();
            }
        }
    }
    

    【讨论】:

    • 使用 System.Windows.Forms.Timer 而不是 System.Timers.Timer。 System.Timers.Timer 无法识别 timer1.Tick。希望这可以帮助某人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多