增加循环进度条中的文本

时间:2017-10-01 18:07:00

标签: c# visual-studio progress-bar

private void _btnOK_Click(object sender, EventArgs e)
    {
        _label1.Hide();
        _label2.Hide();
        _label3.Hide();

        for(int i = 1; i <= 100; i++)
        {
            Thread.Sleep(5);
            _circularprogressbar.Value = i;
            _circularprogressbar.Update();
        }
    }

    private void LoadingScreen_Load(object sender, EventArgs e)
    {
        _circularprogressbar.Value = 0;
        _circularprogressbar.Minimum = 0;
        _circularprogressbar.Maximum = 100;
    }
}

}

这是我的代码。我想要做的是,我想在进度条中有一个文本,显示从1到100%的进度百分比。 我可以添加到我的代码中? 谢谢

2 个答案:

答案 0 :(得分:0)

Thread.Sleep(5)阻止了整个UI线程。如果您希望让UI响应,而在进度发生时,您需要为它创建一个单独的线程。像这样:

private void _btnOK_Click(object sender, EventArgs e)
{
    _label1.Hide();
    _label2.Hide();
    _label3.Hide();

    Task.Factory.StartNew(() => 
    {
        for (int i = 1; i <= 100; i++)
        {
            Thread.Sleep(5);
            Invoke((Action)(() =>
            {
                _circularprogressbar.Value = i;
                _circularprogressbar.Update();
            }));
        }
    });
}

请注意,您需要使用Invoke to BeginInvoke从该线程内部访问UI组件。

答案 1 :(得分:0)

以下是我要做的事情:

private void _btnOK_Click(object sender, EventArgs e)
    {
        _label1.Hide();
        _label2.Hide();
        _label3.Hide();

        for(int i = 1; i <= 100; i++)
        {
            _circularprogressbar.Value = i;
            _percent_lable_name.Text = string.Format("{0}%", _circularprogressbar.Value);
            _circularprogressbar.Update();
        }
    }

    private void LoadingScreen_Load(object sender, EventArgs e)
    {
        _circularprogressbar.Value = 0;
        _circularprogressbar.Minimum = 0;
        _circularprogressbar.Maximum = 100;
    }
}

看看这对你有帮助!

由于

Techcraft7:)