C# 在gridview某列上添加时间控件

在girdview中添加时间控件事件

            acCode = new DataGridViewTextBoxColumn();  //添加列
            acCode.Name = "起始时间";
            acCode.DataPropertyName = "起始时间";
            acCode.HeaderText = "起始时间";
            acCode.ValueType = typeof(System.DateTime);
            acCode.DefaultCellStyle.Format = "yyyy-MM-dd";
            this.GKconfigGridView.Columns.Add(acCode);

            acCode = new DataGridViewTextBoxColumn();
            acCode.Name = "截止时间";
            acCode.DataPropertyName = "截止时间";
            acCode.HeaderText = "截止时间";
            acCode.ValueType = typeof(System.DateTime);
            acCode.DefaultCellStyle.Format = "yyyy-MM-dd";
            this.GKconfigGridView.Columns.Add(acCode);

            this.GKconfigGridView.CellContentClick += new 
            System.Windows.Forms.DataGridViewCellEventHandler(dataGridView1_CellClick);
            //GKconfigGridView添加控件dTimePicker
            this.GKconfigGridView.Controls.Add(dTimePicker);
            dTimePicker.Visible = false;
            //定义控件dTimePicker当Text变更时委托于事件dTimePicker_TextChanged
            this.dTimePicker.Format = DateTimePickerFormat.Custom;
            this.dTimePicker.CustomFormat = "yyyy-MM-dd";
            dTimePicker.TextChanged += new EventHandler(dateTimePicker1_ValueChanged);
            dTimePicker.Leave += new EventHandler(dateTimePicker1_Leave);

添加回调函数

 private DateTimePicker dTimePicker = new DateTimePicker();
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            Rectangle _Rectangle;
            if (bGKconfig && (e.ColumnIndex == 4 || e.ColumnIndex == 5))
            {
                _Rectangle = GKconfigGridView.GetCellDisplayRectangle(e.ColumnIndex,e.RowIndex, true);
                this.dTimePicker.Size = new Size(_Rectangle.Width,_Rectangle.Height); //把单元格大小赋值给时间控件
                this.dTimePicker.Location = new Point(_Rectangle.X,_Rectangle.Y);
                if (this.GKconfigGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null ||
                    this.GKconfigGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "")
                {
                    this.dTimePicker.Value = DateTime.Now;
                    this.dTimePicker.Visible = true;
                }
                else
                {
                    this.dTimePicker.Value = Convert.ToDateTime(this.GKconfigGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                    this.dTimePicker.Visible = true;
                }
            }
        }

        private void dateTimePicker1_Leave(object sender, EventArgs e)
        {
            this.dTimePicker.Visible = false;
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            this.GKconfigGridView.CurrentCell.Value = this.dTimePicker.Value;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值