<p>I have a UserControl with some predefined controls (groupbox,button,datagridview) on it, these controls are marked as protected and the components variable is also marked as protected.</p>

<p>I then want to inherit from this base UserControl to another UserControl, however the DataGridView is always locked in the designer.</p>

<p>I suspect it may have something to do with the DataGridView implementing ISupportInitilize.</p>

<pre><code>public class BaseGridDetail : UserControl
</code></pre>

<p>Has a DataGridView control (et al) defined.</p>

<p><br></p>

<pre><code>public class InheritedDetail : BaseGridDetail
</code></pre>

<p>The DataGridView control is locked</p>

<p><br>Does anyone have any ideas how to make this control available in the designer after inheritenace?</p>

I left an answer but re-read your question and decided to delete it.
What is it about the DataGridView that you're trying to modify in the inherited control? It's columns? I've been able to do this by setting up a protected method in my base UserControl and passing the grid's column collection into it, like this:
```
```
// in base UserControl
public BaseGridDetail()
{
    InitializeComponent();

    InitGridColumns(dataGridView1.Columns);
}

protected virtual void InitGridColumns(DataGridViewColumnCollection columns)
{
    columns.Clear();
}
```
```
Now your derived control can simply override that method, like so:
```
```
// in InheritedDetail
protected override void InitGridColumns(DataGridViewColumnCollection columns)
{
    base.InitGridColumns(columns);
    // add my own custom columns
}
```
```