2013-04-18 4 views
0

Есть ли способ написать текст по умолчанию на панели прогресса на C#?C# progressbar drawstring on form load

это не работает в Form_Load, но отлично работает на кнопку мыши ...

using (Graphics gr = progressBar1.CreateGraphics()) 
{ 
    StringFormat sf = new StringFormat(StringFormatFlags.NoWrap); 
    sf.Alignment = StringAlignment.Center; 
    gr.DrawString("hello world", 
        new Font("Arial", 10.0f, FontStyle.Regular), 
        new SolidBrush(Color.Black), 
        progressBar1.ClientRectangle, 
        sf);     
} 

заранее спасибо

+0

Я бы поставил «Label» поверх «ProgressBar» и обновил «Label.Text» вместе с 'ProgressBar.Progress'. Я никогда не делал этого сам, поэтому я ничего не могу гарантировать. – Nolonar

ответ

0

Вы можете настроить событие таймера на один раз, чтобы сделать это как один вариант.

Timer t = new Timer(); 

Form_Load() 
{ 
    t.Interval = 1000; 
    t.Start(); 
} 

static void t_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    //One time event 
    t.Stop(); 
    using (Graphics gr = progressBar1.CreateGraphics()) 
    { 
     StringFormat sf = new StringFormat(StringFormatFlags.NoWrap); 
     sf.Alignment = StringAlignment.Center; 
     gr.DrawString("hello world", 
      new Font("Arial", 10.0f, FontStyle.Regular), 
      new SolidBrush(Color.Black), 
      progressBar1.ClientRectangle, 
      sf);     
    } 
} 

Одно замечание по этому вопросу:

Как ProgressBar.Value изменяется; графика ProgressBar изменит и перезапишет текст, который вы нарисовали. Комментарий Nolonar о том, чтобы наложить Progressbar на Label и установить его перед ProgressBar, может быть больше для ваших нужд.

В противном случае вам придется обрабатывать перерисовку ProgressBar в качестве изменения графики.

+0

@ByteBlast 1 миллисекунда, может быть, лучше? : P – jordanhill123

+0

ярлык перед панелью прогресса является уродливым, потому что я не могу установить фон прозрачным (мне нужно изменить цвет индикатора прогресса, в зависимости от того, какой каталог я есть, поэтому нет VisualStyles) – BaKeMoNo