//新しいプロパティを追加しているため、

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