---
id: "T:cAlgo.API.ProgressBar"
kind: "class"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/"
---

> Documentation index for agents: https://help.ctrader.com/ctrader-algo/llms.txt · machine index: https://help.ctrader.com/ctrader-algo/api.json

# ProgressBar (class)

Progress bar control.

Environments: Desktop supported · CLI not supported · Cloud not supported.

- CLI: Accepted without error but never displayed, so control events such as Click are never raised.
- Cloud: Accepted without error but never displayed, so control events such as Click are never raised.

## Definition

```csharp
public class ProgressBar : ControlBase
```

Available since cAlgo.API 5.1.

## Examples

C#:

```csharp
using cAlgo.API;

namespace cAlgo.Robots;

public partial class TestExample : Robot
{
    private ProgressBar _progressBar;

    protected override void OnStart()
    {
        _progressBar = new ProgressBar
        {
            HorizontalAlignment = HorizontalAlignment.Center,
            VerticalAlignment = VerticalAlignment.Center,
            Width = 200,
            Height = 100,
            Minimum = 0,
            Maximum = 100
        };

        Chart.AddControl(_progressBar);

        Timer.Start(1);
    }

    protected override void OnTimer()
    {
        _progressBar.Value += 5;
    }
}
```

Python:

```python
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *
# Import trading wrapper functions
from robot_wrapper import *

class Test():
    def on_start(self):
        self.progressBar = ProgressBar()
        self.progressBar.HorizontalAlignment = HorizontalAlignment.Center
        self.progressBar.VerticalAlignment = VerticalAlignment.Center
        self.progressBar.Width = 200
        self.progressBar.Height = 100
        self.progressBar.Minimum = 0
        self.progressBar.Maximum = 100
        api.Chart.AddControl(self.progressBar)
        api.Timer.Start(1)

    def on_timer(self):
        self.progressBar.Value += 5
```

config.json:

```json
{
  "AccessRights": "None"
}
```

C#:

```csharp
using cAlgo.API;

namespace cAlgo.Robots;

public partial class TestExample : Robot
{
    protected override void OnStart()
    {
        var progressBar = new ProgressBar
        {
            HorizontalAlignment = HorizontalAlignment.Center,
            VerticalAlignment = VerticalAlignment.Center,
            Width = 200,
            Height = 30,
            IsIndeterminate = true
        };

        Chart.AddControl(progressBar);
    }
}
```

Python:

```python
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *
# Import trading wrapper functions
from robot_wrapper import *

class Test():
    def on_start(self):
        progressBar = ProgressBar()
        progressBar.HorizontalAlignment = HorizontalAlignment.Center
        progressBar.VerticalAlignment = VerticalAlignment.Center
        progressBar.Width = 200
        progressBar.Height = 30
        progressBar.IsIndeterminate = True
        api.Chart.AddControl(progressBar)
```

config.json:

```json
{
  "AccessRights": "None"
}
```

## Constructors

- `public ProgressBar()` — Initializes a new instance of the ProgressBar class. [details](https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/Constructor/index.md)

## Properties

- `public bool IsIndeterminate {get; set;}` — Gets / sets whether the ProgressBar shows actual values or generic, continuous progress feedback. [details](https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/IsIndeterminate/index.md)
- `public double Maximum {get; set;}` — Get / set progress bar maximum value amount if type is Determinate (default is 100). [details](https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/Maximum/index.md)
- `public double Minimum {get; set;}` — Get / set progress bar minimum value amount if type is Determinate (default is 0). [details](https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/Minimum/index.md)
- `public double Value {get; set;}` — Get / set progress bar value amount if type is Determinate. [details](https://help.ctrader.com/ctrader-algo/references/Controls/ProgressBar/Value/index.md)

## Inherited members

- `public void ResetProperty(ControlProperty property)` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/ResetProperty/index.md)
- `public Guid UniqueId {get;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/UniqueId/index.md)
- `public Style Style {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Style/index.md)
- `public double Left {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Left/index.md)
- `public double Top {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Top/index.md)
- `public double Right {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Right/index.md)
- `public double Bottom {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Bottom/index.md)
- `public double Width {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Width/index.md)
- `public double Height {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Height/index.md)
- `public double MinWidth {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MinWidth/index.md)
- `public double MinHeight {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MinHeight/index.md)
- `public double MaxWidth {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MaxWidth/index.md)
- `public double MaxHeight {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MaxHeight/index.md)
- `public bool IsEnabled {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsEnabled/index.md)
- `public bool IsVisible {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsVisible/index.md)
- `public double Opacity {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Opacity/index.md)
- `public Thickness Margin {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Margin/index.md)
- `public VerticalAlignment VerticalAlignment {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/VerticalAlignment/index.md)
- `public HorizontalAlignment HorizontalAlignment {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/HorizontalAlignment/index.md)
- `public Dock Dock {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Dock/index.md)
- `public bool IsHitTestVisible {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsHitTestVisible/index.md)

