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