دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل DateTimePicker در سی شارپ
1404/08/02 -
توابع اسکالر(scalar) در Sql Server
1404/08/02 -
مدیریت توابع در SQL Server
1404/08/01 -
کنترل Data Set در سی شارپ
1404/08/01 -
کنترل BindingNavigator در سی شارپ
1404/07/30 -
انواع تریگر (Trigger) در Sql Server
1404/07/30
کنترل DateTimePicker در سی شارپ
مقدمه
در دنیای برنامهنویسی سی شارپ، کنترلها (Controls) نقش کلیدی در ساخت رابط کاربری حرفهای و تعاملپذیر دارند.
یکی از پرکاربردترین این کنترلها، DateTimePicker است؛ ابزاری ساده اما بسیار قدرتمند که امکان انتخاب تاریخ و زمان را برای کاربر فراهم میسازد.
این کنترل نه تنها باعث افزایش دقت و سرعت در ورود دادههای زمانی میشود، بلکه از بروز خطاهای انسانی در وارد کردن تاریخ نیز جلوگیری میکند.
مفهوم DateTimePicker در سی شارپ
کنترل DateTimePicker در سیشارپ (C) ابزاری از مجموعهی کنترلهای WinForms است که به کاربر امکان میدهد تاریخ و زمان را از طریق یک رابط کاربری ساده و کاربرپسند انتخاب کند.
این کنترل در برنامههای کاربردی دسکتاپی برای ورود دادههای مرتبط با تاریخ و زمان مانند زمان رزرو، تاریخ تولد، تاریخ تحویل سفارش و غیره مورد استفاده قرار میگیرد.
در واقع DateTimePicker ترکیبی از یک TextBox و یک Calendar DropDown است که کاربر میتواند با کلیک روی فلش کوچک کنار آن، تقویم را مشاهده کرده و یک تاریخ دقیق انتخاب کند.
مزایا و ویژگیهای کنترل DateTimePicker در سی شارپ
کنترل DateTimePicker در مقایسه با روشهای دستی وارد کردن تاریخ، امکانات و دقت بیشتری را در اختیار توسعهدهندگان و کاربران قرار میدهد. برخی از مهمترین مزایا و ویژگیهای این کنترل عبارتاند از:
1. جلوگیری از خطای انسانی در ورود تاریخ
2. پشتیبانی از فرمتهای مختلف تاریخ و زمان
3. قابلیت تنظیم محدودهی زمانی مجاز برای انتخاب
4. مکان نمایش فقط تاریخ یا فقط زمان
5. سازگاری کامل با نوع دادهای DateTime در سی شارپ
6. قابلیت اتصال به منابع داده (Data Binding)
7. پشتیبانی از رخدادها (Events) مانند ValueChanged
این کنترل در فرمهای برنامهنویسی ویندوزی نقش مهمی در استانداردسازی ورودیهای زمانی دارد.

ایجاد DateTimePicker در فرم
پیش از هر چیز برای استفاده از کنترل DateTimePicker باید بدانیم که این ابزار را میتوان هم از طریق محیط طراحی و هم با کدنویسی در فرم ایجاد کرد.
انتخاب هر روش بستگی به نیاز پروژه، میزان پویایی فرم و مهارت برنامهنویس دارد.
در ادامه هر دو روش را توضیح میدهیم تا بتوانید متناسب با شرایط برنامهی خود بهترین گزینه را انتخاب کنید.
1. افزودن از طریق محیط طراحی (Designer)
از نوار ابزار (Toolbox) کنترل DateTimePicker را روی فرم بکشید و رها کنید.
سپس در بخش Properties ویژگیهای آن مانند Name، Format و Value را تنظیم کنید.
2. ایجاد از طریق کدنویسی
روش برنامهنویسی این کنترل به شما اجازه میدهد آن را بهصورت داینامیک (در زمان اجرا) ایجاد کنید. برای این کار از کد زیر استفاده کنید:
DateTimePicker dtPicker = new DateTimePicker();
dtPicker.Format = DateTimePickerFormat.Short;
dtPicker.Location = new Point(30, 50);
dtPicker.Value = DateTime.Now;
this.Controls.Add(dtPicker);
در این مثال، کنترل DateTimePicker بهصورت خودکار در محل مشخصی از فرم ایجاد و مقدار اولیه آن برابر با تاریخ فعلی سیستم تنظیم میشود.
نحوه حذف DateTimePicker از فرم
در برخی از سناریوها ممکن است بخواهید کنترل ایجادشده را به صورت پویا حذف کنید.
برای این منظور، کافی است از متد ()Controls.Remove یا ()Dispose استفاده نمایید:
this.Controls.Remove(dtPicker);
dtPicker.Dispose();
این روش در زمانی مفید است که کنترل DateTimePicker بر اساس شرایط خاصی در فرم ایجاد شده باشد (مثلاً وقتی کاربر گزینهی خاصی را انتخاب میکند) و در ادامه نیاز به حذف آن وجود داشته باشد.
تنظیمات مهم در کنترل DateTimePicker
قبل از استفاده از DateTimePicker در یک پروژه واقعی، آشنایی با ویژگیها و تنظیمات آن ضروری است. برخی از ویژگیهای کلیدی عبارتاند از:
| ویژگی | عملکرد |
| Format | تعیین قالب نمایش (Short، Long، Time یا Custom) |
| Value | مقدار فعلی تاریخ انتخابشده |
| MinDate و MaxDate | تعیین بازهی مجاز تاریخ |
| ShowUpDown | تغییر نحوهی انتخاب زمان از طریق دکمههای بالا و پایین |
| CustomFormat | تعیین قالب سفارشی برای نمایش تاریخ |
مثلاً اگر بخواهید تاریخ را در قالب دلخواه نمایش دهید:
dtPicker.Format = DateTimePickerFormat.Custom;
dtPicker.CustomFormat = "dddd, MMMM dd, yyyy";
اتصال DateTimePicker به پایگاه داده (Data Binding)
یکی از قابلیتهای کاربردی این کنترل، اتصال آن به دادهها است.
به عنوان مثال اگر فیلد تاریخ تولد کاربر را از پایگاه داده بخواهید در فرم نمایش دهید، میتوانید از Data Binding استفاده کنید:
dtPicker.DataBindings.Add("Value", usersBindingSource, "BirthDate", true, DataSourceUpdateMode.OnPropertyChanged);
این دستور باعث میشود که کنترل بهطور مستقیم با منبع داده در ارتباط باشد و هر تغییری در مقدار کنترل یا منبع داده بهصورت خودکار بهروزرسانی شود.
تغییر ظاهر کنترل DateTimePicker
هرچند این کنترل از نظر ظاهری ساده است، اما میتوانید با استفاده از ویژگیهای مختلف و کدهای اضافی، ظاهر آن را متناسب با رابط کاربری خود تنظیم کنید.
برخی تنظیمات کاربردی برای زیباسازی کنترل:
1. تغییر اندازه و رنگ فونت با Font
2. تغییر رنگ متن با ForeColor
3. تنظیم پسزمینه با BackColor
4. افزودن ToolTip برای نمایش راهنمای تاریخ انتخابشده
مثال:
dtPicker.CalendarMonthBackground = Color.LightYellow;
dtPicker.CalendarForeColor = Color.DarkBlue;
مدیریت رخدادها (Events) در DateTimePicker
در فرآیند طراحی رابط کاربری تعاملی، کنترل DateTimePicker تنها محدود به نمایش تاریخ نیست؛ بلکه با بهرهگیری از رخدادهای مختلف، میتوان رفتار آن را متناسب با نیاز برنامه مدیریت و شخصیسازی کرد.
این رخدادها به توسعهدهنده اجازه میدهند تا هنگام تغییر تاریخ، باز و بسته شدن تقویم یا هرگونه تعامل کاربر، عملکرد خاصی را اجرا کند.
پرکاربردترین رخدادهای کنترل DateTimePicker عبارتاند از:
ValueChanged
زمانی فعال میشود که کاربر تاریخ یا زمان انتخابی را تغییر دهد. این رخداد برای بهروزرسانی سایر کنترلها یا انجام محاسبات مرتبط با تاریخ انتخابی بسیار مفید است.
DropDown
در لحظهای که تقویم باز میشود رخ میدهد و میتواند برای نمایش پیام راهنما یا تنظیم پویا قبل از انتخاب تاریخ استفاده شود.
CloseUp
هنگامی اجرا میشود که کاربر تقویم را ببندد. معمولاً برای بررسی صحت تاریخ انتخابشده یا انجام عملیات پس از انتخاب نهایی کاربرد دارد.
نمونهای از استفادهی عملی رخداد ValueChanged در سی شارپ:
private void dtPicker_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show("تاریخ انتخابشده: " + dtPicker.Value.ToShortDateString());
}
در این مثال، هر زمان کاربر تاریخ جدیدی را از کنترل انتخاب کند، یک پیام حاوی مقدار جدید نمایش داده میشود.
این روش برای کنترل فرمهای رزرو، ثبت سفارش یا هر نوع دادهی وابسته به زمان بسیار کاربردی است.

نکات مهم هنگام کار با DateTimePicker
در پروژههای بزرگ، رعایت چند نکتهی کلیدی میتواند به بهینهتر شدن عملکرد کنترل DateTimePicker و جلوگیری از بروز خطا کمک کند.
1. از ویژگی MinDate و MaxDate برای جلوگیری از انتخاب تاریخهای نامعتبر استفاده کنید.
2. اگر فقط به زمان نیاز دارید، خاصیت ShowUpDown = true را فعال و Format را روی `Time` تنظیم کنید.
3. هنگام کار با دادههای پایگاه داده، همیشه قالب نمایش (Format) را با نوع داده در دیتابیس هماهنگ کنید.
4. از رخداد ValueChanged برای کنترل همزمان چند کنترل دیگر بر اساس تاریخ انتخابشده استفاده کنید.
مثال کاربردی از کنترل DateTimePicker
در مثال زیر یک فرم ساده داریم که در آن کاربر تاریخ تولد خود را انتخاب کرده و برنامه سن او را محاسبه میکند:
private void btnCalculate_Click(object sender, EventArgs e)
{
DateTime birthDate = dtPicker.Value;
int age = DateTime.Now.Year - birthDate.Year;
if (DateTime.Now.DayOfYear < birthDate.DayOfYear)
age--;
MessageBox.Show("سن شما: " + age + " سال است");
}
این نمونه یکی از رایجترین کاربردهای DateTimePicker در برنامههای کاربردی است.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
مزایای استفاده از DateTimePicker نسبت به TextBox
در طراحی فرمهای کاربری، دقت و سهولت در ورود دادههای زمانی اهمیت ویژهای دارد.
استفاده از کنترل DateTimePicker بهجای TextBox باعث میشود فرآیند انتخاب تاریخ بهشکل ساختاریافته، سریع و بدون خطا انجام شود.
این کنترل با بهرهگیری از تقویم داخلی سیستم، گزینهای بسیار حرفهای و استاندارد برای مدیریت ورودیهای تاریخ و زمان به شمار میآید.
مهمترین مزایای استفاده از DateTimePicker نسبت به TextBox عبارتاند از:
ورود داده با دقت بالا و بدون خطا
کاربران بهجای تایپ دستی، تاریخ را از تقویم انتخاب میکنند و احتمال خطا در فرمت از بین میرود.
پشتیبانی از تقویم سیستم
این کنترل بهطور خودکار از تنظیمات محلی (Locale) و تقویم سیستم عامل پیروی میکند.
محدودسازی تاریخها به بازههای معتبر
با استفاده از ویژگیهای MinDate و MaxDate میتوان انتخاب تاریخهای خارج از محدوده را محدود کرد.
امکان تنظیم خودکار قالب تاریخ
فرمت نمایش را میتوان به حالتهای Short, Long یا حتی Custom تغییر داد تا با نیاز پروژه هماهنگ شود.
بهبود تجربه کاربری
ظاهر گرافیکی و کاربرپسند DateTimePicker باعث افزایش رضایت کاربران و کاهش اشتباهات ورودی میشود.
پرسش های کنترل DateTimePicker در سی شارپ
1. چگونه میتوان فقط زمان را در DateTimePicker نمایش داد؟
برای این کار کافی است مقدار Format را برابر Time قرار دهید و ویژگی ShowUpDown = true را فعال کنید تا فقط زمان قابل تغییر باشد.
2. آیا میتوان DateTimePicker را به دیتابیس متصل کرد؟
بله، با استفاده از خاصیت DataBindings میتوانید مقدار DateTimePicker را مستقیماً به فیلد تاریخ در دیتابیس متصل کنید تا دادهها بهصورت خودکار همگام شوند.

نتیجهگیری:
کنترل DateTimePicker در سی شارپ ابزاری قدرتمند برای دریافت تاریخ و زمان به صورت دقیق، قابل کنترل و سازگار با سیستم است.
این کنترل با پشتیبانی از فرمتهای متنوع، رخدادهای کاربردی و قابلیت اتصال به پایگاه داده، یکی از ابزارهای اصلی توسعهدهندگان در طراحی فرمهای ویندوزی محسوب میشود.
با رعایت نکات گفتهشده و استفادهی صحیح از ویژگیهای آن، میتوانید فرمهایی استاندارد، زیبا و بدون خطا طراحی کنید.
دوره های مرتبط
آموزش برنامه نویسی سی شارپ
زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.
999,000 تومان
آموزش جامع ساخت نرم افزار حسابداری و انبارداری
سیستم حسابداری و انبارداری یکی از ابزارهای مهم برای سازمانها و شرکتها است که فرایند های عملیاتی را بهبود و افزایش می دهد.







