今天做项目时遇到这个问题,随从网上找例子,找了半天终于从csdn上面找了一个比较合适的,现在公布出来,供大家参考(只是选择日期的-_-)
//1、先声明DateTimePicker 对象(公共的) private DateTimePicker dTimePicker = newDateTimePicker(); //2、在Form_Load()里边加入以下代码: dTimePicker.Visible = false; //默认不显示 //DateTimePicker的格式为自定义 dTimePicker.Format = DateTimePickerFormat.Custom; //DateTimePicker 的自定义类型 dTimePicker.CustomFormat = "yyyy-MM-dd HH:mm:ss"; //当DateTimePicker 文本变化时赋值操作 dTimePicker.TextChanged += new EventHandler( dTimePicker_TextChanged ); //将这个控件加载到datagiridview中 dgv.Controls.Add( dTimePicker); private void dTimePicker_TextChanged( object sender, EventArgs e ) { //把dTimePicker的Text值赋给dataGridView1选中的单元格值 dgvFKDB.CurrentCell.Value = dTimePicker.Text; } private void dgvFKDB_CurrentCellChanged( object sender, EventArgs e ) { DataGridViewCell CurrnetCell = this.dgvFKDB.CurrentCell; if (CurrnetCell != null && CurrnetCell.OwningColumn.Name == "FKSJ") { //获得dataGridView1选中单元格显示区域的矩形 Rectangle Rect = this.dgvFKDB.GetCellDisplayRectangle(CurrnetCell.ColumnIndex, CurrnetCell.RowIndex, true ); //显示dTimePicker在dataGridView1选中单元格显示区域的矩形里面,即选中单元格内 dTimePicker.Visible = true; dTimePicker.Top = Rect.Top; dTimePicker.Left = Rect.Left; dTimePicker.Height = Rect.Height; TimePicker.Width = Rect.Width; //dTimePicker控件获取初始值为dataGridView1选中单元格值 dTimePicker.Text = dgvFKDB.Rows[CurrnetCell.RowIndex].Cells[CurrnetCell.ColumnIndex].Value.ToString(); } else { this.dTimePicker.Visible = false; } }
本例子由csdn上面改编而来。
源码下载(csdn上面的,可参考)---更新事件:2012-3-21 01:34