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 ListBoxItem(System.Windows.Forms.DataGridViewColumn column, DataGridViewColumnCollectionDialog owner, ComponentDesigner compDesigner) { this.column = column; this.owner = owner; this.compDesigner = compDesigner; if (this.compDesigner != null) { this.compDesigner.Initialize(column); TypeDescriptor.CreateAssociation(this.column, this.compDesigner); } ToolboxBitmapAttribute attribute = TypeDescriptor.GetAttributes(column)[DataGridViewColumnCollectionDialog.toolboxBitmapAttributeType] as ToolboxBitmapAttribute; if (attribute != null) { this.toolboxBitmap = attribute.GetImage(column, false); } else { this.toolboxBitmap = this.owner.SelectedColumnsItemBitmap; } System.Windows.Forms.Design.DataGridViewColumnDesigner designer = compDesigner as System.Windows.Forms.Design.DataGridViewColumnDesigner; if (designer != null) { designer.LiveDataGridView = this.owner.liveDataGridView; } }
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(); } } }