0
進行状況のパーセント値をラベルに表示しようとしています.Im Aproxを追加しています。 25Kの行をDataTableに追加します。 Label.Textをe.ProgressPercentageに設定するとうまく動作します。私は%値を計算するときしかし、それはあなたが最も可能性がゼロになり、整数で整数を割るいる計算された進捗率が更新されない
progressCount = report.Rows.Count;
foreach (DataRow r in report.Rows)
{
rp.pName = r[1].ToString();
rp.batch = r[2].ToString();
rp.expr = r[3].ToString();
rp.stock = r[5].ToString();
rp.rate = r[6].ToString();
backgroundWorker2.ReportProgress(i, rp);
System.Threading.Thread.Sleep(2);
if(backgroundWorker2.CancellationPending)
{
e.Cancel = true;
backgroundWorker2.ReportProgress(0);
}
i++;
}
private void backgroundWorker2_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
metroProgressBar1.Minimum = 0;
metroProgressBar1.Maximum = progressCount;
stock st = new stock();
reportClass rp = (reportClass)e.UserState;
if(!backgroundWorker2.CancellationPending)
{
st.stockReport.Rows.Add(rp.pName, rp.batch, rp.expr, rp.stock, rp.rate);
metroProgressBar1.Value = e.ProgressPercentage;
int percn = (e.ProgressPercentage/progressCount) * 100;
metroLabel4.Text =percn.ToString();
}
}
おそらくイベントを登録しませんでした:backgroundWorker2.ProgressChanged + =新しいProgressChangedEventHandler(backgroundWorker2_ProgressChanged)。 – jdweng