在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;
}