private void OnComponentRemoving(object sender, ComponentEventArgs e)
{
// If our control is being removed
if ((_breadCrumb != null) && (e.Component == _breadCrumb))
{
// Need access to host in order to delete a component
IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));
// We need to remove all the button spec instances
for (int i = _breadCrumb.ButtonSpecs.Count - 1; i >= 0; i--)
{
// Get access to the indexed button spec
ButtonSpec spec = _breadCrumb.ButtonSpecs[i];
// Must wrap button spec removal in change notifications
_changeService.OnComponentChanging(_breadCrumb, null);
// Perform actual removal of button spec from bread crumb
_breadCrumb.ButtonSpecs.Remove(spec);
// Get host to remove it from design time
host.DestroyComponent(spec);
// Must wrap button spec removal in change notifications
_changeService.OnComponentChanged(_breadCrumb, null, null, null);
}
}
}