Я пытаюсь добавить какой-либо текст в индикатор выполнения полосы инструментов , но до сих пор у меня не получилось, вот код, который я нашел ЗДЕСЬ :
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.Поэтому мне было интересно, смог ли кто-нибудь успешно добавить текст в индикатор выполнения полосы инструментов.
UPDATE
Хорошо, похоже, что 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)));
}
}