private void deleteKeyMenuItem_Click(object sender, System.EventArgs e) { ContextMenu cm = ((MenuItem)sender).Parent as ContextMenu; if (cm != null) { GradientEditorControl gec = cm.SourceControl as GradientEditorControl; if (gec != null) { gec.GradientKeys.RemoveAt(gec.mLastClickedKeyIndex); } } }
private void OnComponentRemoved(object sender, ComponentEventArgs ce) { if (ce.Component is GradientEditorControl) { GradientEditorControl host = (GradientEditorControl)ce.Component; IDesignerHost designHost = (IDesignerHost)GetService(typeof(IDesignerHost)); // remove our gradient key components // so they are not left in the serialized form definition foreach (Component c in host.mGradientKeyCollection) { if (c != null) { designHost.DestroyComponent(c); } } } }