1

これは私が使用しているコードです:

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
            progressBar1.Value = e.ProgressPercentage;
            progressBar1.Refresh();
            int percent = (int)(((double)(progressBar1.Value - progressBar1.Minimum) /
(double)(progressBar1.Maximum - progressBar1.Minimum)) * 100);
            using (Graphics gr = progressBar1.CreateGraphics())
            {
                gr.DrawString(percent.ToString() + "%",
                    SystemFonts.DefaultFont,
                    Brushes.Black,
                    new PointF(progressBar1.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
                        SystemFonts.DefaultFont).Width / 2.0F),
                    progressBar1.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
                        SystemFonts.DefaultFont).Height / 2.0F)));
            }


            listBox1.Items.Add( "Converting File: " + e.UserState.ToString());
            textBox1.Text = e.ProgressPercentage.ToString();
}

処理中に右に移動すると、パーセンテージが点滅し、十分に滑らかではありません。

また、最終的にプロセスを終了すると、パーセンテージがなくなり、緑色だけが残ります。

4

1 に答える 1