public InternalDataGridView(ComboBoxMultiColumns owner)
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.DoubleBuffered           = true;
            this.AutoGenerateColumns      = false;
            this.AllowUserToAddRows       = false;
            this.AllowUserToDeleteRows    = false;
            this.AllowUserToResizeColumns = false;
            this.AllowUserToResizeRows    = false;
            this.RowHeadersVisible        = false;
            this.VirtualMode                 = true;
            this.ReadOnly                    = true;
            this.Dock                        = DockStyle.Fill;
            this.BackgroundColor             = Color.White;
            this.ColumnHeadersHeight         = 26;
            this.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            this.RowTemplate.Resizable       = DataGridViewTriState.False;
            this.RowTemplate.Height          = 24;
            this.SelectionMode               = DataGridViewSelectionMode.FullRowSelect;
            this.MultiSelect                 = false;
            this.Owner                       = owner;

            this.MouseClick      += new MouseEventHandler(InternalDataGridView_MouseClick);
            this.KeyUp           += new KeyEventHandler(InternalDataGridView_KeyUp);
            this.CellValueNeeded += new DataGridViewCellValueEventHandler(InternalDataGridView_CellValueNeeded);
        }
        public override object Serialize(IDesignerSerializationManager manager, object value)
        {
            CodeDomSerializer baseClassSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ComboBoxMultiColumns).BaseType, typeof(CodeDomSerializer));
            object            codeObject          = baseClassSerializer.Serialize(manager, value);

            if (codeObject is CodeStatementCollection)
            {
                ComboBoxMultiColumns comboBoxMultiColumns = value as ComboBoxMultiColumns;
                if (comboBoxMultiColumns != null)
                {
                    CodeStatementCollection           statements     = (CodeStatementCollection)codeObject;
                    List <CodeObjectCreateExpression> parameter_list = new List <CodeObjectCreateExpression>();
                    foreach (ComboBoxColumn column in comboBoxMultiColumns.Columns)
                    {
                        parameter_list.Add
                        (
                            new CodeObjectCreateExpression
                            (
                                typeof(ComboBoxColumn),
                                new CodeExpression[]
                        {
                            new CodePropertyReferenceExpression(new CodeVariableReferenceExpression("ComboBoxMultiColumns.ComboBoxColumnAlignment"), column.Alignment.ToString()),
                            new CodePrimitiveExpression(column.AutoSize),
                            new CodePrimitiveExpression(column.Caption),
                            new CodePrimitiveExpression(column.FieldName),
                            new CodePrimitiveExpression(column.FormatString),
                            new CodePrimitiveExpression(column.Visible),
                            new CodePrimitiveExpression(column.Width)
                        }
                            )
                        );
                    }

                    CodeArrayCreateExpression    createArray = new CodeArrayCreateExpression(typeof(ComboBoxColumn), parameter_list.ToArray());
                    CodeFieldReferenceExpression target      = base.SerializeToExpression(manager, value) as CodeFieldReferenceExpression;
                    if (target != null && parameter_list.Count > 0)
                    {
                        //CodeMethodInvokeExpression methodCall = new CodeMethodInvokeExpression(new CodeVariableReferenceExpression("this." + target.FieldName + ".Columns"), "AddRange", createArray);
                        CodeMethodReferenceExpression methodCall = new CodeMethodReferenceExpression(new CodeThisReferenceExpression(), target.FieldName + ".Columns.AddRange");
                        CodeMethodInvokeExpression    invoker    = new CodeMethodInvokeExpression(methodCall, createArray);
                        statements.Add(invoker);
                    }
                }
            }

            return(codeObject);
        }
        public Popup(ComboBoxMultiColumns owner)
        {
            this.Content              = new InternalDataGridView(owner);
            this.ControlHost          = new ToolStripControlHost(this.Content);
            this.ControlHost.AutoSize = false;

            this.Owner                    = owner;
            this.DoubleBuffered           = true;
            this.AutoSize                 = false;
            this.AutoClose                = true;
            this.ResizeRedraw             = true;
            this.Padding                  = new Padding(4, 2, 4, 0x10);
            this.RegionChanged           += (sender, e) => UpdateRegion();
            this.Paint                   += (sender, e) => PaintSizeGrip(e);
            this.DefaultDropDownDirection = ToolStripDropDownDirection.Default;
            this.Items.Add(ControlHost);
            this.UpdateRegion();
        }
 internal ComboBoxColumnCollection(ComboBoxMultiColumns owner)
 {
     this.Owner = owner;
 }
 public CustomActionList(IComponent owner) : base(owner)
 {
     this.Owner             = owner as ComboBoxMultiColumns;
     this.designerActionSvc = GetService(typeof(DesignerActionUIService)) as DesignerActionUIService;
 }