public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (provider != null) { IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if ((service == null) || (context.Instance == null)) { return(value); } IDesignerHost host = (IDesignerHost)provider.GetService(typeof(IDesignerHost)); if (host == null) { return(value); } if (this.dataGridViewColumnCollectionDialog == null) { this.dataGridViewColumnCollectionDialog = new DataGridViewColumnCollectionDialog(((DataGridView)context.Instance).Site); } this.dataGridViewColumnCollectionDialog.SetLiveDataGridView((DataGridView)context.Instance); using (DesignerTransaction transaction = host.CreateTransaction(System.Design.SR.GetString("DataGridViewColumnCollectionTransaction"))) { if (service.ShowDialog(this.dataGridViewColumnCollectionDialog) == DialogResult.OK) { transaction.Commit(); return(value); } transaction.Cancel(); } } return(value); }
public void OnEditColumns(object sender, EventArgs e) { IDesignerHost service = base.Component.Site.GetService(typeof(IDesignerHost)) as IDesignerHost; DataGridViewColumnCollectionDialog dialog = new DataGridViewColumnCollectionDialog(((DataGridView)base.Component).Site); dialog.SetLiveDataGridView((DataGridView)base.Component); DesignerTransaction transaction = service.CreateTransaction(System.Design.SR.GetString("DataGridViewEditColumnsTransactionString")); DialogResult cancel = DialogResult.Cancel; try { cancel = this.ShowDialog(dialog); } finally { if (cancel == DialogResult.OK) { transaction.Commit(); } else { transaction.Cancel(); } } }