# Customize the Toolbox

This topic describes the Designer API part that concerns the Toolbox customization.

## Content



You can change the Designer toolbox items to show specific controls or remove a control from the toolbox.<br />

### Add Toolbox panel

The code example below demonstrates adding a Toolbox panel to the Designer using the [Designer.Toolbox](/activereportsnet/api/v20.1/MESCIUS.ActiveReports.Design.Win/GrapeCity.ActiveReports.Design.Designer.html) property.

```csharp.
using GrapeCity.ActiveReports.Design;
using GrapeCity.ActiveReports.Design.ReportExplorer;
class MyForm : Form
{
  MyForm()
  {
    var _designer = new Designer() { Dock = DockStyle.Fill };
    var toolbox = new Toolbox { Dock = DockStyle.Right };
    _designer.Toolbox = toolbox;
    Controls.Add(_designer);
    Controls.Add(toolbox);
  }
}
```

### Control the Toolbox items

With the [Toolbox.ConfigureToolboxItems](/activereportsnet/api/v20.1/MESCIUS.ActiveReports.Design.Win/GrapeCity.ActiveReports.Design.Toolbox.BaseToolbox.html) method, you can control items that are available in the Toolbox.

![Toolbox](https://cdn.mescius.io/document-site-files/images/b298aea2-8cb8-4a0f-be88-4f54aa263ebd/images/devops/configuretoolboxitems.png)

You first need to define a state provider as demonstrated in the sample below.

```csharp
class ToolboxStateProvider : IToolboxUser
{
   public bool GetToolSupported(ToolboxItem tool)
    {
        if (tool.TypeName == "GrapeCity.ActiveReports.Design.DdrDesigner.Designers.BandedList.BandedListDesigner")
            return true;
        return false;
    }
    public void ToolPicked(ToolboxItem tool)  { }
}
```

After the state provider is configured, you need to configure the Toolbox with it as demonstrated in the sample below.

```csharp
toolbox.ConfigureToolboxItems(new ToolboxStateProvider());
```

### Remove an item from the Toolbox

You can use the [Toolbox.RemoveToolboxItem](/activereportsnet/api/v20.1/MESCIUS.ActiveReports.Design.Win/GrapeCity.ActiveReports.Design.Toolbox.BaseToolbox.html) method together with the [Toolbox.GetToolboxItems](/activereportsnet/api/v20.1/MESCIUS.ActiveReports.Design.Win/GrapeCity.ActiveReports.Design.Toolbox.BaseToolbox.html) method to remove an item from the Toolbox.

```csharp
private static void RemoveBandedListFromToolBox(Toolbox toolbox)
{
  //Find the item to be removed.
  var bandedList = toolbox.GetToolboxItems()
      .OfType<ToolboxItem>()
      .Single(items => items.TypeName.EndsWith("BandedListDesigner"));
  //Remove the banded list item from the toolbox.
  toolbox.RemoveToolboxItem(items);
}
```