Пример #1
0
        //編集コントロールを初期化する
        //編集コントロールは別のセルや列でも使いまわされるため、初期化の必要がある
        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);
        }