public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { PropertyGridDlg dlg = new PropertyGridDlg(value); if (dlg.ShowDialog() == DialogResult.OK) { value = dlg.Object; } return value; }