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