نحوه استفاده از DateTimePicker در DataGridView در C#
با سلام و احترام
آیا امکان استفاده از کامپوننت DateTimePicker در DataGridView برای اینکه کاربر برای انتخاب تاریخ راحتر شود هست؟ با تشکر
پاسخ هوش مصنوعی
بله، شما می توانید از کامپوننت DateTimePicker در DataGridView استفاده کنید. برای این کار می توانید یک ستون از نوع DataGridViewDateTimePickerCell ایجاد کنید که به کاربران اجازه می دهد تاریخ را به راحتی انتخاب کنند. در زیر یک مثال ساده آورده شده است:
using System;
using System.Windows.Forms;
public class MyDataGridView : Form
{
private DataGridView dataGridView;
public MyDataGridView()
{
dataGridView = new DataGridView();
dataGridView.Dock = DockStyle.Fill;
dataGridView.AutoGenerateColumns = false;
// ایجاد ستون تاریخ
DataGridViewColumn dateColumn = new DataGridViewDateTimePickerColumn();
dateColumn.HeaderText = "تاریخ";
dateColumn.Name = "dateColumn";
dataGridView.Columns.Add(dateColumn);
// اضافه کردن مزاحم برای مقداردهی اولیه
dataGridView.Rows.Add(DateTime.Now);
this.Controls.Add(dataGridView);
this.Load += new EventHandler(MyDataGridView_Load);
}
private void MyDataGridView_Load(object sender, EventArgs e)
{
// اعمال تنظیمات لازم
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new MyDataGridView());
}
}
// کلاس DataGridViewDateTimePickerColumn
public class DataGridViewDateTimePickerColumn : DataGridViewColumn
{
public DataGridViewDateTimePickerColumn() : base(new DataGridViewDateTimePickerCell())
{
}
public override DataGridViewCell CreateCellInstance()
{
return new DataGridViewDateTimePickerCell();
}
}
// کلاس DataGridViewDateTimePickerCell
public class DataGridViewDateTimePickerCell : DataGridViewTextBoxCell
{
public override Type EditType => typeof(DataGridViewDateTimePickerEditingControl);
protected override void OnEnter(int rowIndex, DataGridViewCellStateOld state)
{
base.OnEnter(rowIndex, state);
this.DataGridView.BeginEdit(true);
}
}
در این مثال، یک کلاس به نام DataGridViewDateTimePickerColumn و یک کلاس به نام DataGridViewDateTimePickerCell ایجاد شده است. با استناد به این کلاس ها، شما می توانید ستون های تاریخ را در DataGridView خود اضافه کنید. در نهایت، هنگامی که کاربر بر روی سلول کلیک کند، یک کنترل DateTimePicker برای انتخاب تاریخ نمایش داده می شود.
آموزش انتخاب تاریخ در DataGridView در سی شارپ
این کار رو شما خیلی راحت می تونید با اضافه کردن یک کنترل DateTimePicker به صورت داینامیک به دیتاگریدویو انجام بدید.
- یک پروژه جدید از نوع Windows Form ایجاد کنید.
- یک کنترل DataGridView روی فرم خودتون قرار بدید.
- 3 ستون به نام های "نام" و "فامیلی" و "تاریخ تولد" در DataGridView خودتون اضافه کنید.
- حالا DataGridView رو انتخاب کنید و از قسمت event ها در Solution Explorer روی خاصیت CellClick دو بار کلیک کنید.
- کدهای زیر رو در متد CellClick بنویسید:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
DateTimePicker dtp = new DateTimePicker();
dataGridView1.Controls.Add(dtp);
dtp.Format = DateTimePickerFormat.Short;
Rectangle displaycalender = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
dtp.Size = new Size(displaycalender.Width, displaycalender.Height);
dtp.Location = new Point(displaycalender.X, displaycalender.Y);
}
}
حالا اگر پروژتون رو اجرا کنید می بینید که به راحتی میتونید از کنترل تاریخ در جدول استفاده کنید.

- دسترسی به پکیج های nuget در زمان قطع نت بین الملل
- نمایش آخرین ردیف دیتاگیرید موقع لود در wpf
- مشکل اینترنت جهانی و عدم دسترسی به cdnjs.cloudflare.com
- مشکل در نصب sql server 2022
- جلوگیری از اد شدن خودکار در گروه و کانال تلگرام
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- جلوگیری از انتشار غیرمجاز مطالب در کانال های تلگرامی
- تفاوت های تلگرام و واتس اپ چیست ؟
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول