原创---C# DataGridView 点击某列选择日期/下拉列表框
今天做项目时遇到这个问题,随从网上找例子,找了半天终于从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

浙公网安备 33010602011771号