//編集コントロールを初期化する //編集コントロールは別のセルや列でも使いまわされるため、初期化の必要がある public override void InitializeEditingControl( int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); //編集コントロールの取得 DataGridViewDecimalControl decimalBox = this.DataGridView.EditingControl as DataGridViewDecimalControl; if (decimalBox != null) { //Textを設定 string decimalText = initialFormattedValue as string; decimalBox.Text = decimalText != null ? decimalText : ""; //カスタム列のプロパティを反映させる DataGridViewDecimalColumn column = this.OwningColumn as DataGridViewDecimalColumn; if (column != null) { decimalBox.DecimalPlace = column.DecimalPlace; decimalBox.MaxLength = column.MaxInputLength; decimalBox.UseThousandSeperator = column.UseThousandSeparator; decimalBox.UseMinus = column.UseMinus; } } }
//新しいプロパティを追加しているため、 // Cloneメソッドをオーバーライドする必要がある public override object Clone() { DataGridViewDecimalColumn col = (DataGridViewDecimalColumn)base.Clone(); col.decimalPlace = this.decimalPlace; col.maxInputLength = this.maxInputLength; col.usethousandSeparator = this.usethousandSeparator; col.useminus = this.useminus; return(col); }