DateTimePicker dtp = new DateTimePicker();
Rectangle _Rectangle; //用来判断时间控件的位置
private void BindGvApply()
{
dgv.Controls.Add(dtp);
dtp.Visible = false; //先不让它显示
dtp.Format = DateTimePickerFormat.Custom; //设置日期格式为2010-08-05
dtp.TextChanged += new EventHandler(dtp_TextChange);
}
private void dtp_TextChange(object sender, EventArgs e)
{
dgv.CurrentCell.Value = dtp.Text.ToString();
//时间控件选择时间时,就把时间赋给所在的单元格
}
private void gvApply_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewTextBoxCell starttime = ((DataGridViewTextBoxCell)dgv.Rows[e.RowIndex].Cells["WeekTimeBeg"]);
if (e.ColumnIndex == 6)
{
_Rectangle = dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
//得到所在单元格位置和大小
dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height);
//把单元格大小赋给时间控件
dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给时间控件
dtp.Visible = true; //可以显示控件了
starttime.Value = DateTime.Now;
}
else
{
dtp.Visible = false;
}
}