<p>I have to override Add method of "Controls" property of myControl that is extended from a Panel control of windows. For that i extended ControlCollection class into MyControlCollection where i overriden its Add method. Now i declared a Controls property of MyControlCollection type to hide panel's Controls property. When i am accessing this.Controls.Add(control), it refers to overriden Add method. But if i drags and drops a control on myControl the behaviour is of base type's Add method. Can any body suggest the cause and remedy for this problem? Thanks in advance.</p>

The cause is that the designer is calling Control.Controls rather than accessing your separate collection. To be honest, your solution sounds like it's destined to cause trouble - hiding members usually does.
What are you trying to achieve, exactly? It doesn't look like there's a nice event to hook into in
```
ControlCollection
```
but there may be a different way of tackling the problem.
EDIT: I've just seen that
```
Control
```
has a
```
ControlAdded
```
event - would subscribing to that be enough for you?