نحوه استفاده از 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);
}
}
حالا اگر پروژتون رو اجرا کنید می بینید که به راحتی میتونید از کنترل تاریخ در جدول استفاده کنید.

- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول