Добавление текста в полосу выполнения панели инструментов

Я пытаюсь добавить текст в Индикатор выполнения панели инструментов , но пока мне это не удалось, вот код, который я нашел ЗДЕСЬ :

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)));
    }
}

6
задан Mark Kram 10 October 2011 в 06:08
поделиться