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();
         }
     }
 }