public ColorArrayForm(Color[] colors, string title, IColorArrayEditorCaller caller) { InitializeComponent(); if (colors != null) { foreach (Color c in colors) { ColorArrayItem it = new ColorArrayItem(c, this); lsb.Items.Add(it); } } this.Text = title; if (caller != null) { lsb.BackColor = caller.BackColorForColorArrayEditor; lsb.ForeColor = caller.ForeColorForColorArrayEditor; foreach (Control con in this.Controls) { if (con is Button) { con.Text = caller.GetButtonText(con.Text); } } } btnRemove.Enabled = (lsb.SelectedItems.Count > 0 && lsb.Items.Count > 0); }
public override object EditValue( ITypeDescriptorContext context, IServiceProvider provider, object value) { IColorArrayEditorCaller caller = null; if (context.Instance is IColorArrayEditorCaller) { caller = (IColorArrayEditorCaller)context.Instance; } ColorArrayForm f = new ColorArrayForm((Color[])value, "", caller); if (f.ShowDialog() == DialogResult.OK) { return(f.GetColorArray()); } return(base.EditValue(context, provider, value)); }