2011-09-30 59 views
1

如何在C#Windows窗体中创建自定义ToolStripProgressBar?如何在C#Windows窗体中创建自定义ToolStripProgressBar?

我想创建一个风格进度为连续的,但在Windows XP中是不可能的..

所以,我怎么能设置所有者绘制此控件?

+0

我不知道ToolStripProgressBars,但它应该类似于overriting正常进度条。微软说如何做到这一点:http://support.microsoft.com/kb/323116 而CodeProject也增加了一些东西:http://www.codeproject.com/KB/cpp/colorprogressbar.aspx – Arie

+0

是的,我知道如何自定义普通进度条,但需要如何完成ToolStripProgressBar – user186246

+1

使用ToolStripControlHost类。 –

回答

1

我可以给你在ToolStripControlHost更多信息,我创建了使用这种用下面的代码

public class ToolStripProgressBarC : ToolStripControlHost 
{ 
    // Call the base constructor passing in a ProgressBar instance. 
    public ToolStripProgressBarC() : base(new ProgressBar()) 
    { 
     ((ProgressBar)Control).Style = ProgressBarStyle.Continuous; 
    } 

    public ProgressBar ProgressBarControl 
    { 
     get 
     { 
      return Control as ProgressBar; 
     } 
    } 

    // Expose the ProgressBar.Value as a property. 
    public int Value 
    { 
     get 
     { 
      return ProgressBarControl.Value; 
     } 
     set { ProgressBarControl.Value = value; } 
    } 

} 

然后我把它添加到我的工具条中,像这样一个进度条。

ToolStripProgressBarC tsp = new ToolStripProgressBarC(); 
tsp.Value = 90; 
toolStrip1.Items.Add(tsp); 

你应该能够做到这一点,你需要通过添加额外的功能,以“ToolStripProgressBarC”类中的任何额外的覆盖。

相关问题