DatePicked 嵌入datagridview 的Cell中

public partial class Form5 : Form
{
	DateTimePicker dtp = new DateTimePicker();
	Rectangle _rectangle;
	public Form5()
	{
		InitializeComponent();
		dataGridView1.Controls.Add(dtp);
		dtp.Visible = false;
		dtp.Format = DateTimePickerFormat.Custom;
		dtp.TextChanged += new EventHandler(DPTextchanged);
		dtp.CloseUp += DPClose;
	}

	private void Form5_Load(object sender, EventArgs e)
	{
		//var aa = SqlSugarHelper.SqlSugarClient.Queryable<dynamic>().AS("t_dept").Where("dept_code=@dept_code", new { dept_code = "1A" }).Select("*").ToList();
		//dataGridView1.DataSource = (DataRow)aa;
		var aa = SqlSugarHelper.SqlSugarClient.Ado.GetDataTable("select top 100 work_place, emp_name, in_date from t_emp where dept_code='1A'");
		dataGridView1.DataSource = aa;
			
	}


	private void DPTextchanged(object sender,EventArgs e)
	{
		dataGridView1.CurrentCell.Value = dtp.Text.ToString();
	}

	private void DPClose(object sender, EventArgs e)
	{
		dtp.Visible = false;
	}

	private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
	{
		//if(e.ColumnIndex == 2)
		//{
		//	//DateTimePicker dtp = new DateTimePicker();

		//	//dtp.Format = DateTimePickerFormat.Custom;
		//	//dtp.CustomFormat = "dd-MM-yyyy";
		//	dtp.Visible = true;
		//	_rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
		//	dtp.Size = new Size(_rectangle.Width, _rectangle.Height);
		//	dtp.Location = new Point(_rectangle.X, _rectangle.Y);
		//}

		switch (dataGridView1.Columns[e.ColumnIndex].Name)
		{
			case "in_date":
				_rectangle = dataGridView1.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;
				break;
		}
	}

	private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
	{
		dtp.Visible = false;
	}
}

posted on 2022-09-11 15:38  manber  阅读(30)  评论(0)    收藏  举报

导航