Ejemplo n.º 1
0
        /// <devdoc>
        ///      Converts the given object to another type.  The most common types to convert
        ///      are to and from a string object.  The default implementation will make a call
        ///      to ToString on the object if the object is valid and if the destination
        ///      type is string.  If this cannot convert to the desitnation type, this will
        ///      throw a NotSupportedException.
        /// </devdoc>
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType == null)
            {
                throw new ArgumentNullException("destinationType");
            }

            DataGridViewColumn dataGridViewColumn = value as DataGridViewColumn;

            if (destinationType == typeof(InstanceDescriptor) && dataGridViewColumn != null)
            {
                ConstructorInfo ctor;

                // public DataGridViewColumn(Type cellType)
                //
                if (dataGridViewColumn.CellType != null)
                {
                    ctor = dataGridViewColumn.GetType().GetConstructor(new Type[] { typeof(Type) });
                    if (ctor != null)
                    {
                        return(new InstanceDescriptor(ctor, new object[] { dataGridViewColumn.CellType }, false));
                    }
                }

                // public DataGridViewColumn()
                //
                ctor = dataGridViewColumn.GetType().GetConstructor(new Type[0]);
                if (ctor != null)
                {
                    return(new InstanceDescriptor(ctor, new object[0], false));
                }
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
Ejemplo n.º 2
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, System.Type destinationType)
        {
            if (destinationType == null)
            {
                throw new ArgumentNullException("destinationType");
            }
            DataGridViewColumn column = value as DataGridViewColumn;

            if ((destinationType == typeof(InstanceDescriptor)) && (column != null))
            {
                ConstructorInfo constructor;
                if (column.CellType != null)
                {
                    constructor = column.GetType().GetConstructor(new System.Type[] { typeof(System.Type) });
                    if (constructor != null)
                    {
                        return(new InstanceDescriptor(constructor, new object[] { column.CellType }, false));
                    }
                }
                constructor = column.GetType().GetConstructor(new System.Type[0]);
                if (constructor != null)
                {
                    return(new InstanceDescriptor(constructor, new object[0], false));
                }
            }
            return(base.ConvertTo(context, culture, value, destinationType));
        }
 private static void CopyDefaultCellStyle(DataGridViewColumn srcColumn, DataGridViewColumn destColumn)
 {
     System.Type c = srcColumn.GetType();
     System.Type type = destColumn.GetType();
     if (c.IsAssignableFrom(type) || type.IsAssignableFrom(c))
     {
         destColumn.DefaultCellStyle = srcColumn.DefaultCellStyle;
     }
     else
     {
         DataGridViewColumn column = null;
         try
         {
             column = Activator.CreateInstance(c) as DataGridViewColumn;
         }
         catch (Exception exception)
         {
             if (System.Windows.Forms.ClientUtils.IsCriticalException(exception))
             {
                 throw;
             }
             column = null;
         }
         if ((column == null) || (column.DefaultCellStyle.Alignment != srcColumn.DefaultCellStyle.Alignment))
         {
             destColumn.DefaultCellStyle.Alignment = srcColumn.DefaultCellStyle.Alignment;
         }
         if ((column == null) || !column.DefaultCellStyle.BackColor.Equals(srcColumn.DefaultCellStyle.BackColor))
         {
             destColumn.DefaultCellStyle.BackColor = srcColumn.DefaultCellStyle.BackColor;
         }
         if (((column != null) && (srcColumn.DefaultCellStyle.Font != null)) && !srcColumn.DefaultCellStyle.Font.Equals(column.DefaultCellStyle.Font))
         {
             destColumn.DefaultCellStyle.Font = srcColumn.DefaultCellStyle.Font;
         }
         if ((column == null) || !column.DefaultCellStyle.ForeColor.Equals(srcColumn.DefaultCellStyle.ForeColor))
         {
             destColumn.DefaultCellStyle.ForeColor = srcColumn.DefaultCellStyle.ForeColor;
         }
         if ((column == null) || !column.DefaultCellStyle.Format.Equals(srcColumn.DefaultCellStyle.Format))
         {
             destColumn.DefaultCellStyle.Format = srcColumn.DefaultCellStyle.Format;
         }
         if ((column == null) || (column.DefaultCellStyle.Padding != srcColumn.DefaultCellStyle.Padding))
         {
             destColumn.DefaultCellStyle.Padding = srcColumn.DefaultCellStyle.Padding;
         }
         if ((column == null) || !column.DefaultCellStyle.SelectionBackColor.Equals(srcColumn.DefaultCellStyle.SelectionBackColor))
         {
             destColumn.DefaultCellStyle.SelectionBackColor = srcColumn.DefaultCellStyle.SelectionBackColor;
         }
         if ((column == null) || !column.DefaultCellStyle.SelectionForeColor.Equals(srcColumn.DefaultCellStyle.SelectionForeColor))
         {
             destColumn.DefaultCellStyle.SelectionForeColor = srcColumn.DefaultCellStyle.SelectionForeColor;
         }
         if ((column == null) || (column.DefaultCellStyle.WrapMode != srcColumn.DefaultCellStyle.WrapMode))
         {
             destColumn.DefaultCellStyle.WrapMode = srcColumn.DefaultCellStyle.WrapMode;
         }
         if (!srcColumn.DefaultCellStyle.IsNullValueDefault)
         {
             object nullValue = srcColumn.DefaultCellStyle.NullValue;
             object obj3 = destColumn.DefaultCellStyle.NullValue;
             if (((nullValue != null) && (obj3 != null)) && (nullValue.GetType() == obj3.GetType()))
             {
                 destColumn.DefaultCellStyle.NullValue = nullValue;
             }
         }
     }
 }
Ejemplo n.º 4
0
        private void CreateColumnFilter(DataGridViewColumn c)
        {
            if (!mAutoCreateFilters) return;
            //Raise the event about column filter creation
            ColumnFilterEventArgs e = new ColumnFilterEventArgs(c,null);
            if (ColumnFilterAdding != null) ColumnFilterAdding(this, e);
            //if not provided, by an event handler, proceed with standard filter creation
            if (e.ColumnFilter==null) {
                Type DataType = null;
                if (c.DataPropertyName != "") {
                    DataType = mBoundDataView.Table.Columns[c.DataPropertyName].DataType;

                    switch (c.GetType().Name) {
                        case "DataGridViewComboBoxColumn":
                            e.ColumnFilter = new DgvComboBoxColumnFilter();
                            break;
                        case "DataGridViewCheckBoxColumn":
                            e.ColumnFilter = new DgvCheckBoxColumnFilter();
                            break;
                        case "DataGridViewTextBoxColumn":
                            if (DataType == typeof(DateTime)) {
                                e.ColumnFilter = new DgvDateColumnFilter();
                            }
                            else
                                e.ColumnFilter = new DgvTextBoxColumnFilter();
                            break;
                    }
                }
            }
            mColumnFilterList[c.Index] = e.ColumnFilter;
            if (e.ColumnFilter != null) { // == null when non-data column
                if (ColumnFilterAdded != null) ColumnFilterAdded(this, e);
                e.ColumnFilter.Init(this, FilterHost, c, mBoundDataView);
            }
        }