Я пытаюсь добавить текст в Индикатор выполнения панели инструментов , но пока мне это не удалось, вот код, который я нашел ЗДЕСЬ :
private void pbPrecentage(ToolStripProgressBar pb)
{
ProgressBar p = new ProgressBar();
int percent = (int)(((double)(pb.Value - pb.Minimum) /
(double)(pb.Maximum - pb.Minimum)) * 100);
using (Graphics gr = pb.CreateGraphics())
{
gr.DrawString(percent.ToString() + "%",
SystemFonts.DefaultFont,
Brushes.Black,
new PointF(pb.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Width / 2.0F),
pb.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Height / 2.0F)));
}
}
Проблема в том, что на панели выполнения панели инструментов нет метода CreateGraphics. Поэтому мне было интересно, смог ли кто-нибудь успешно добавить текст на полосу выполнения панели инструментов.
Хорошо, похоже, что ToolStripProgressBar имеет свойство индикатора выполнения, которое, в свою очередь, имеет метод CreateGraphics, но проблема в том, что текстовое значение мигает и мигает, как мне это исправить? Вот исправленный код:
private void pbPrecentage(ToolStripProgressBar pb)
{
int percent = (int)(((double)(pb.Value - pb.Minimum) /
(double)(pb.Maximum - pb.Minimum)) * 100);
using (Graphics gr = pb.ProgressBar.CreateGraphics())
{
gr.DrawString(percent.ToString() + "%",
SystemFonts.DefaultFont,
Brushes.Black,
new PointF(pb.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Width / 2.0F),
pb.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Height / 2.0F)));
}
}