//新しいプロパティを追加しているため、 // Cloneメソッドをオーバーライドする必要がある public override object Clone() { DataGridViewEditComboBoxColumn col = (DataGridViewEditComboBoxColumn)base.Clone(); col.Items = this.Items; return(col); }
//編集コントロールを初期化する //編集コントロールは別のセルや列でも使いまわされるため、初期化の必要がある public override void InitializeEditingControl( int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); //編集コントロールの取得 DataGridViewEditComboBoxEditingControl comboBox = this.DataGridView.EditingControl as DataGridViewEditComboBoxEditingControl; if (comboBox != null) { //Textを設定 comboBox.Text = this.Value != null?this.Value.ToString() : ""; //カスタム列のプロパティを反映させる DataGridViewEditComboBoxColumn column = this.OwningColumn as DataGridViewEditComboBoxColumn; //绑定EditComboBox的Items项 if (column != null) { object[] items = column.Items; comboBox.Items.Clear(); if (items != null && items.Length > 0) { if (comboBox.Items.Count <= 0) { comboBox.Items.AddRange(items); } } } } }