//要實現自定義屬性設計時的保存必須同時重寫Clone方法 public override object Clone() { DataGridViewTimeColumn col = (DataGridViewTimeColumn)base.Clone(); col.ShowUpDown = this.showUpDown; return(col); }
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); // //設定DateTimePicker特性 // DataGridViewColumn dgvColumn = this.OwningColumn; if (dgvColumn is DataGridViewTimeColumn) { DataGridViewDateTimeEditingControl ctl = DataGridView.EditingControl as DataGridViewDateTimeEditingControl; if (ctl == null) { return; } ctl.Value = DateTime.Parse((string)initialFormattedValue); DataGridViewTimeColumn dateTimeColumn = dgvColumn as DataGridViewTimeColumn; // //設定ShowUpDown // ctl.ShowUpDown = this.ShowUpDown; // //設定Format // switch (dateTimeColumn.DefaultCellStyle.Format) { case "d": ctl.Format = DateTimePickerFormat.Short; break; case "D": ctl.Format = DateTimePickerFormat.Long; break; case "f": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "yyyy年M月d日 tt hh:mm"; break; case "F": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "yyyy年M月d日 HH:mm:ss"; break; case "g": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "yyyy/MM/dd tt hh:mm"; break; case "G": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "yyyy/MM/dd HH:mm:ss"; break; case "t": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "tt hh:mm"; break; case "T": ctl.Format = DateTimePickerFormat.Time; ctl.CustomFormat = "HH:mm:ss"; break; case "M": ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = "M月d日"; break; default: ctl.Format = DateTimePickerFormat.Custom; ctl.CustomFormat = dateTimeColumn.DefaultCellStyle.Format; break; } } }