C# 中并没有名为 “Progress” 的内置组件
首先,我们需要创建一个自定义的 ProgressBar 类,该类继承自 System.Windows.Forms.Control。然后,我们可以在这个类中添加属性、方法和事件,以实现所需的功能。
以下是一个简单的 ProgressBar 类示例:
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; public class CustomProgressBar : Control { private int _value; private int _minimum; private int _maximum; public CustomProgressBar() { SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true); _minimum = 0; _maximum = 100; } [DefaultValue(0)] public int Minimum { get { return _minimum; } set { if (value < 0) throw new ArgumentOutOfRangeException("Minimum", "Minimum should be greater than or equal to zero."); _minimum = value; Invalidate(); } } [DefaultValue(100)] public int Maximum { get { return _maximum; } set { if (value <= _minimum) throw new ArgumentOutOfRangeException("Maximum", "Maximum should be greater than minimum."); _maximum = value; Invalidate(); } } [DefaultValue(0)] public int Value { get { return _value; } set { if (value < _minimum || value > _maximum) throw new ArgumentOutOfRangeException("Value", "Value should be between minimum and maximum."); _value = https://www.yisu.com/ask/value;"hljs">protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // Draw the progress bar background e.Graphics.FillRectangle(new SolidBrush(BackColor), ClientRectangle); // Calculate the progress bar value rectangle float percentage = (float)_value / (float)(_maximum - _minimum); int progressWidth = (int)(percentage * ClientRectangle.Width); Rectangle valueRectangle = new Rectangle(0, 0, progressWidth, ClientRectangle.Height); // Draw the progress bar value e.Graphics.FillRectangle(new SolidBrush(ForeColor), valueRectangle); } }
这个示例中的 CustomProgressBar 类包含了 Minimum、Maximum 和 Value 属性,以及一个 OnPaint 方法来绘制进度条。你可以根据需要修改这个类,以实现更多的功能和自定义外观。
要在你的应用程序中使用这个自定义进度条,只需将其添加到你的项目中,然后在工具箱中找到它,将其拖放到你的窗体上即可。