---
id: "M:cAlgo.API.CustomControl.AddChild(cAlgo.API.ControlBase)"
kind: "method"
type: "T:cAlgo.API.CustomControl"
url: "https://help.ctrader.com/ctrader-algo/references/Controls/CustomControl/AddChild/"
---

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

# CustomControl.AddChild

Member of [CustomControl](https://help.ctrader.com/ctrader-algo/references/Controls/CustomControl/index.md).

## AddChild(ControlBase childControl)

Adds a child 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.

C#:

```csharp
protected void AddChild(ControlBase childControl)
```

Python:

```python
customControl.AddChild(childControl: ControlBase) -> None
```

### Parameters

- `childControl` (`ControlBase`, Python `ControlBase`):

### Examples

C#:

```csharp
public class SpreadLabel : CustomControl
{
    private readonly TextBlock _textBlock = new TextBlock { Text = "Spread" };

    public SpreadLabel()
    {
        var border = new Border { BorderThickness = 1, BorderColor = Color.Gray, Padding = 5, Child = _textBlock };
        AddChild(border);
    }

    public void Update(double spreadInPips) => _textBlock.Text = "Spread: " + spreadInPips.ToString("F1");
}
```

Python:

```python
# Not available in Python: CustomControl subclasses are C# classes, compose built-in controls instead
textBlock = TextBlock()
textBlock.Text = "Spread"
border = Border()
border.BorderThickness = Thickness(1)
border.BorderColor = Color.Gray
border.Child = textBlock
api.Chart.AddControl(border)
```

