【问题标题】:How to create custom ToolStripProgressBar in C# Windows forms?如何在 C# Windows 窗体中创建自定义 ToolStripProgressBar?
【发布时间】:2011-09-30 09:39:35
【问题描述】:

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

我想创建一个风格为连续的进度条,但在 windows xp 中这是不可能的..

那么我怎样才能为这个控件设置所有者绘制呢?

【问题讨论】:

  • 我不知道 ToolStripProgressBars 但它应该类似于覆盖普通进度条。微软说怎么做:support.microsoft.com/kb/323116 CodeProject 也添加了一些东西:codeproject.com/KB/cpp/colorprogressbar.aspx
  • 是的,我知道如何自定义普通进度条,但需要如何为 ToolStripProgressBar 完成
  • 使用 ToolStripControlHost 类。
  • 感谢您让我了解 ToolStripControlHost 类

标签: c# .net winforms c#-4.0 windows-forms-designer


【解决方案1】:

我可以为您提供有关 ToolStripControlHost 的更多信息,我使用以下代码创建了一个 ProgressBar

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”类添加额外的函数来进行任何额外的覆盖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多