ProgressBar с процентом в Label.Text в Foreach - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть этот код, и у меня есть ProgressBar, я хочу написать процент от моего progressBar в метке.Как я могу сделать это в цикле foreach?Это мой код:

       prg.Style = ProgressBarStyle.Continuous;
       con.Open();
       //insignificant sql and listbox operations...
       prg.Value = 0;
       prg.Maximum = myDataTable.Rows.Count;
       foreach (DataRow myRows5 in myDataTable.Rows)
       {
           dgv.Rows.Add(...);
           prg.Value++;
           Application.DoEvents();
           lbl.Text = "Loading... %" + Convert.ToString("I will put here of percentage...");
       }

Примечание: процентное значение для формата будет равно целому проценту = ((prg.Value / prg.Maximum) * 100)

Спасибо ...

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете отобразить процент следующим образом:

lbl.Text = string.Format("Loading... {0:p0}", (prg.Value / (double)prg.Maximum));

Форматер p0 преобразует значение от 0 до 1 в процент с 0 десятичными знаками.

Если вы на самом делеЕсли для других вычислений нужен процент, вы можете рассчитать его почти так, как описано выше:

int percent = (int)(prg.Value / (double)prg.Maximum);

Обратите внимание на преобразование одного из значений в double, чтобы убедиться, что целочисленное деление не используется.

...