# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET >  ورژن جدید کمپوننت DateTimePicker فارسی

## mostafaaa

سلام
چند سال پیش توی یکی از پروژه هام بابت احتیاجی که داشتم کنترل DateTimePicker نوشتم و اون رو برای استفاده دیگر دوستان توی سایت هم قرار دادم(اینجا). که خوب یا بد مورد توجه برخی از دوستان برنامه نویس قرار گرفت. در طی این مدت دوستان زیادی لطف داشتن و از طریق ایمیل و یا پیغام خصوصی درخواست داشتن که ورژن جدیدی از این کنترل رو بنویسم که متاسفانه علارقم میل باطنی خودم و به علت مشغله زیاد  فرصت کار کردن روش رو به صورت کامل نداشتم ولی هر از چند گاهی که سرم خلوت تر میشد روش کار میکردم.( که هنوز از نظر من تکمیل نیست).
با این حال خوب یا بد اینجا قرارش میدم تا دوستان تستش کنن و اگه اشگالی داشت بهم اطلاع بدن تا برطرفش کنم.
*properties*
Format: برای تغیر فرمت نمایش از کوتاه "1/1/90" به بلند " چهارشنبه، 26 بهمن ، 1390"
GregorianDate: تاریخ معادل میلادی روز انتخاب شده
MaxDate
MinDate
Value: تاریخ شمسی به صورت String و با فرمت "yyyy/MM/dd"
*Events*
FormatChanged
ValueChanged
ButtonClick
*Classes*
توی Name Space کنترل هم یک کلاس به اسم PerCalendar هستش که برای تبدیل انواع تاریخ بین شمسی و میلادی میتونید ازش استفاده کنید.
*آپدیت :1390/11/30*
کنترل Persian Month Calendar هم ب Library فوق اضافه شد.
*آپدیت : 1390/12/3*
برخی از باگها بر طرف شد. ( رفع مشکل نشان دادن ضربدر قرمز در هنگام بروز خطا)
*آپدیت : 1391/04/04*
اضافه شدن Month calendar
قابلیت ست کردن تاریخ به صورت میلادی از طریق پراپرتی GregorianDate
...
Release(1391.04.04).zip
*1395/11/07 سورس برنامه
*طبق درخواست خیلی از دوستان برنامه نویس سورس این برنامه رو اینجا قرار میدم
PersianDateTimePicker.rar

----------


## mehdi_9009

ممنون از كامپوننت كه گذاشتين آيا به ركورد ها بايند مي شه

----------


## ali190

ممنونم از کامپوننت عالیتون
ولی این کامپوننت خاصیت Allignment هم داره؟

----------


## djhooman

خیلی عالی و جذابه !!!

یه سوال دارم ...

من توی بانک اطلاعاتی SQL ام یه فیلد دارم مربوط به تاریخ ...

فایل دی ال ال رو به رفرنس و تولباکسم اضافه کردم ، میخوام بدونم چجوری فیلد تاریخم رو به این تبدیل کنم ؟؟؟

توی دیتاست نوع فیلد رو چی قرار بدم ؟؟ ( بصورت پیشفرض Textbox هست و گزینه های دیگه هم داره )

درضمن فیلدم توی بانک اطلاعاتیم از نوع استرینگ انتخاب کردم که به مشکل نخوورم ...

حالا میشه بگید چجوری از این کامپوننت برای درج تاریخ توی برنامم استفاده کنم ...

لطفا اگه زحمتی نیست کامل بگید چیکار کنم ...

من مبتدی هستم ....

----------


## mostafaaa

> ممنون از كامپوننت كه گذاشتين آيا به ركورد ها بايند مي شه


 ممنون از اینکه گوشزد کردید پراپرتی های Value و GetGergorianDate تو ورژن دوباره کمپایل شده قابلیت بایند شدن هم دارن.

----------


## mostafaaa

اگه منظورتون TextAlign هستش ، نه.

----------


## mostafaaa

> خیلی عالی و جذابه !!!
> 
> یه سوال دارم ...
> 
> من توی بانک اطلاعاتی SQL ام یه فیلد دارم مربوط به تاریخ ...
> 
> فایل دی ال ال رو به رفرنس و تولباکسم اضافه کردم ، میخوام بدونم چجوری فیلد تاریخم رو به این تبدیل کنم ؟؟؟
> 
> توی دیتاست نوع فیلد رو چی قرار بدم ؟؟ ( بصورت پیشفرض Textbox هست و گزینه های دیگه هم داره )
> ...


 از پراپرتی Value استفاده کن.

----------


## mehdi_9009

با سلام اين كامپوننت تو vs 2008  كار مي كنه من امتحان كردم نتونستم dll  رو بيارم ممنون مي شم راهنمايي كنيد

----------


## mostafaaa

> با سلام اين كامپوننت تو vs 2008  كار مي كنه من امتحان كردم نتونستم dll  رو بيارم ممنون مي شم راهنمايي كنيد


سلام
این کمپوننت تحت .Net Framework 4 کمپایل شده .
به نظرم بهتره که ورژن Visual studio رو به 2010 ارتقا بدید.

----------


## djhooman

> از پراپرتی Value استفاده کن.


 میشه یکم کاملتر توضیح بدید ؟
وقتی کامپوننت رو درگ میکنم و پراپرتیش و تنظیم می کنم و Build میکنم پروژه رو ، فرم و که ران می کنم جای Datetimepicker یه علامت ضربدر میاد ....

چرا ؟

----------


## barnamenevisforme

از این کار تون خیلی ممنون ،انشاءالله که همیشه در کارهاتون موفق باشید.

----------


## hamed_blooki

ممنون-اگه ممکنه سورس رو هم بزارید که بچه تو توسعه اش شریک بشن.ولی ظاهرا علاقه به انتشار اون ندارین :متفکر: ولی حیفه واقعا بدون سورس  همین طوری رها بشه.

----------


## swallow.pa

> ممنون-اگه ممکنه سورس رو هم بزارید که بچه تو توسعه اش شریک بشن.ولی ظاهرا علاقه به انتشار اون ندارینولی حیفه واقعا بدون سورس  همین طوری رها بشه.


شاید دوست نداره سورس رو بده همینطوری هم که DLL رو نمی دن باید ممنونشون باشیم

----------


## gilsoft

سلام و خسته نباشید خدمت دوست عزیز *mostafaaa*
بابت کامپوننت فوق خیلی خیلی ممنونم .. واقعا زحمت کشیدید
پیشنهادمیدم *تقویم شمسی و یه ماسک باکس جهت دریافت تاریخ شمسی* (که از لحاظ ظاهر با کامپوننت فوق هماهنگ باشه) هم به این مجموعه اضافه کنید. به نظر من اگه هر سه کنترل باهم مچ باشند خیلی بهتره (ما مبتدی ها هم از سر در گمی در میایم)
خودم دارم از سه تا DLL مختلف استفاده می کنم . برای هرسه تا چندتا ماجول/فانکشن نوشتم.
اگه این حرکت انجام بشه خیلی عالی میشه ...
انشاالله که اون 2 تای دیگه هم اضافه بشه !!

یا حق ...

----------


## djhooman

> میشه یکم کاملتر توضیح بدید ؟
> وقتی کامپوننت رو درگ میکنم و پراپرتیش و تنظیم می کنم و Build میکنم پروژه رو ، فرم و که ران می کنم جای Datetimepicker یه علامت ضربدر میاد ....
> 
> چرا ؟


 ??????????????????????

----------


## mostafaaa

> میشه یکم کاملتر توضیح بدید ؟
> وقتی کامپوننت رو درگ میکنم و پراپرتیش و تنظیم می کنم و Build میکنم پروژه رو ، فرم و که ران می کنم جای Datetimepicker یه علامت ضربدر میاد ....
> 
> چرا ؟


 سلام
چک کن Target Framework روی .Net Framework 4 باشه نه روی .Net Framework 4 Client profile....

----------


## mostafaaa

> سلام و خسته نباشید خدمت دوست عزیز *mostafaaa*
> بابت کامپوننت فوق خیلی خیلی ممنونم .. واقعا زحمت کشیدید
> پیشنهادمیدم *تقویم شمسی و یه ماسک باکس جهت دریافت تاریخ شمسی* (که از لحاظ ظاهر با کامپوننت فوق هماهنگ باشه) هم به این مجموعه اضافه کنید. به نظر من اگه هر سه کنترل باهم مچ باشند خیلی بهتره (ما مبتدی ها هم از سر در گمی در میایم)
> خودم دارم از سه تا DLL مختلف استفاده می کنم . برای هرسه تا چندتا ماجول/فانکشن نوشتم.
> اگه این حرکت انجام بشه خیلی عالی میشه ...
> انشاالله که اون 2 تای دیگه هم اضافه بشه !!
> 
> یا حق ...


سلام
ممنون از پیشنهاداتون
همانطور که تو پست اولم هم گفتم این کمپوننت هنوز تکمیل نشده و دوست داشتم ( دارم  ) که تکمیلش کنم و اون مواردی رو که فرمودید به علاوه خیلی چیزهای دیگه مد نظر دارم.
اینشالا اگه فرصتی باشه کم کم تکمیلش میکنم.
یا علی

----------


## djhooman

> سلام
> چک کن Target Framework روی .Net Framework 4 باشه نه روی .Net Framework 4 Client profile....



چک کردم ... روی Net Framework 4 بود ....  :گریه:  :گریه:  :گریه:

----------


## javad.nic63

> سلام
> چک کن Target Framework روی .Net Framework 4 باشه نه روی .Net Framework 4 Client profile....


 دوست عزیز از زحماتت واقعاً ممنونم. خیلی خوبه.
ولی ای کاش برای Client Profile هم طراحی کرده بودی که در این صورت خیلی خوب می شد چون Client Profile دارای مزایای زیادیه. مرسی از زحماتت

----------


## djhooman

> چک کردم ... روی Net Framework 4 بود ....



چیکار کنم ؟؟؟؟؟؟

----------


## alimanam

با سلام

در ابتدا از اینکه کنترل خودتون رو به روز کردین سپاسگذارم . در ادامه یه سوال داشتم دوست عزیز , آیا دلیل خاصی وجود داشت که با دات نت فرم ورک نسخه 4 این کنترل رو نوشتین ؟  من هنوز کنترل شما رو تست نکردم ولی خوب بود ( البته در صورت امکان ) با نسخه های پایین تر مینوشتین که تعداد کسانی که میتونستن از این کنترل استفاده کنن بیشتر میشد به این دلیل که خیلی ها در حال حاضر با نسخه 8 یا 9 ویژوال استودیو دارن برنامه مینویسن .

موفق باشید./

----------


## djhooman

> چیکار کنم ؟؟؟؟؟؟



عکس اررور و ضمیمه می کنم 

اکه datetimepicker رو تو پروپرتی دیتاش روی فیلد تاریخم ست نکنم بدون مشکل نشون میده اما اگه به فیلد وصلش کنم مثل تصویر پیوست میشه ...

Untitled.jpg

----------


## mostafaaa

> عکس اررور و ضمیمه می کنم 
> 
> اکه datetimepicker رو تو پروپرتی دیتاش روی فیلد تاریخم ست نکنم بدون مشکل نشون میده اما اگه به فیلد وصلش کنم مثل تصویر پیوست میشه ...
> 
> Untitled.jpg


سلام
دوست من اگه زمانی که به مشکل میخوری کامل مشکلت رو شرح بدی شاید زودتر به نتیجه برسی.
ورژن VS که استفاده میکنی چیه؟
چطور داری به پراپرتی VAlue مقدار میدی؟
ورژن جدید تر رو از پست اول دانلود کن و دوباره تست کن.

----------


## mostafaaa

> دوست عزیز از زحماتت واقعاً ممنونم. خیلی خوبه.
> ولی ای کاش برای Client Profile هم طراحی کرده بودی که در این صورت خیلی خوب می شد چون Client Profile دارای مزایای زیادیه. مرسی از زحماتت


سلام دوست من
همانطور که میدونید Client profile یه ساب کلاس از .net frame work 4 هستش و این یعنی اینکه یه چیزهایی کمتر از کلاس اصلی توشه و البته بخش اعظمی از کلاس اصلی رو هم به ارث برده... و برخی از لایبرری های اصلی .net framework توش نیست.



> The .NET Framework 4 Client Profile is a subset of the .NET Framework 4  that is optimized for client applications. It provides functionality for  most client applications, including Windows Presentation Foundation  (WPF), Windows Forms, Windows Communication Foundation (WCF), and  ClickOnce features. This enables faster deployment and a smaller install  package for applications that target the .NET Framework 4 Client  Profile.


علت این که من ازش استفاده نکردم اینه که :



> system.design assembly is not currently targeted as .net framework client profile

----------


## grafic

سلام وست عزیز

این  DLL که  گذاشتین خیلی عالی بود 

حالا من اگر بخوام اختلاف دوتا تاریخ رو به روز در بیارم باید جه کار کنم ؟

----------


## djhooman

> سلام
> دوست من اگه زمانی که به مشکل میخوری کامل مشکلت رو شرح بدی شاید زودتر به نتیجه برسی.
> ورژن VS که استفاده میکنی چیه؟
> چطور داری به پراپرتی VAlue مقدار میدی؟
> ورژن جدید تر رو از پست اول دانلود کن و دوباره تست کن.


مقدار پراپرتی  Value  رو به فیلد تاریخ دیتابیسم بایند می کنم ....

ورژن 2010 هستش ...

تست کردم بازم نشد ...

----------


## mostafaaa

> مقدار پراپرتی  Value  رو به فیلد تاریخ دیتابیسم بایند می کنم ....
> 
> ورژن 2010 هستش ...
> 
> تست کردم بازم نشد ...


سلام
تاريخ رو با چه فرمتي تو ديتابيس ذخيره ميکنيد?
فرمت ورودي پراپرتي value به صورت yyyy/mm/dd و string بايد باشه.
در ضمن حواستون باشه که فيلد ديتابيستون null هم نباشه.

----------


## grafic

سلام 

کسی جواب من رو نداد ؟!!!!!!

برای کم کردن دوتا تاریخ و بدست آوردن اختلاف به روز چه کار باید بکنم ؟

----------


## djhooman

> سلام
> تاريخ رو با چه فرمتي تو ديتابيس ذخيره ميکنيد?
> فرمت ورودي پراپرتي value به صورت yyyy/mm/dd و string بايد باشه.
> در ضمن حواستون باشه که فيلد ديتابيستون null هم نباشه.


میشه دقیقا بگید چیکار کنم ؟؟؟

پراپرتی ولیو توی کجا باید بصورت yyyy/mm/dd ست بشه ؟
چی رو استرینگ بکنم ؟

اگه میشه یکم آماتورگونه توضیح بدید استپ بای استپ ...
 :گریه:

----------


## mostafaaa

> میشه دقیقا بگید چیکار کنم ؟؟؟
> 
> پراپرتی ولیو توی کجا باید بصورت yyyy/mm/dd ست بشه ؟
> چی رو استرینگ بکنم ؟
> 
> اگه میشه یکم آماتورگونه توضیح بدید استپ بای استپ ...


سلام
امیدوارم با این Sample مشکلتون حل بشه.
http://www.mediafire.com/?tlnihkq95o0mruq

*در ضمن فایل اصلی کمپوننت رو هم دوباره از پست اول دانلود کنید.
آپدیت شده و برخی از باگهاش هم رفع شده.
*

----------


## djhooman

> سلام
> امیدوارم با این Sample مشکلتون حل بشه.
> http://www.mediafire.com/?tlnihkq95o0mruq
> 
> *در ضمن فایل اصلی کمپوننت رو هم دوباره از پست اول دانلود کنید.
> آپدیت شده و برخی از باگهاش هم رفع شده.
> *


عزیز ، میشه سورس این سمپل رو بذاری ؟؟؟ فقط exe هستش که !!!

میخوام ببینم چیکارا کردی توش ....

----------


## mostafaaa

سلام
شرمنده دوست من.
موقع آپ کردن عجله داشتم این شد که یادم رفت سورسش رو هم آپ کنم.
http://www.mediafire.com/?ter82sb9nd9pxn4

----------


## djhooman

مشکل ضربدره حل شده ...

اما به دیتابیس بایند نمیشه ...

تاریخ انتخاب میشه کرد ، اما توی فیلد تاریخ مقدار تاریخ دخیره نمیشه !!!!

----------


## djhooman

کسی نیست کمک کنه ؟؟؟

----------


## neynavaz

دوست عزیز تاریخ بصورت یکشنبه 20 فروردین 1391 نشون میده
چطور میشه 1390/01/21 نشون بده؟

----------


## mostafaaa

> دوست عزیز تاریخ بصورت یکشنبه 20 فروردین 1391 نشون میده
> چطور میشه 1390/01/21 نشون بده؟


از پراپرتي format استفاده کن.

----------


## neynavaz

> از پراپرتي format استفاده کن.


 خیلی ممنون ایشاله خوش بخت بشی جوون...

----------


## Morteza_s

آقا مصطفی سلام
ممنون بابت زحماتی که برای توسعه این کمپوننت کشیدی
من به یه مشکل برخوردم، وقتی کنترل رو روی فرم قرار میدم در قسمت Designer فرم این خطاها رو میده:
'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.DateTimePicker1 = New PersianDateTimePicker.DateTimePicker()
        Me.SuspendLayout()
        '
        'DateTimePicker1
        '
        Me.DateTimePicker1.BackColor = System.Drawing.SystemColors.Control
        Me.DateTimePicker1.Font = New System.Drawing.Font("B Homa", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(178, Byte))
        Me.DateTimePicker1.Format = PersianDateTimePicker.DateTimePicker.DateFormat.[Long]
        Me.DateTimePicker1.Location = New System.Drawing.Point(37, 23)
        Me.DateTimePicker1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
        Me.DateTimePicker1.MaxDate = "1500/4/23"
        Me.DateTimePicker1.MinDate = "1200/2/15"
        Me.DateTimePicker1.Name = "DateTimePicker1"
        Me.DateTimePicker1.Size = New System.Drawing.Size(215, 28)
        Me.DateTimePicker1.TabIndex = 0
        Me.DateTimePicker1.Value = "1391/02/06"
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(284, 262)
        Me.Controls.Add(Me.DateTimePicker1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub
    Friend WithEvents DateTimePicker1 As PersianDateTimePicker.DateTimePicker

در خطهای 9 ، 16 ، 37
متن خطاها به ترتیب:
 Error 1: Type 'PersianDateTimePicker.DateTimePicker' is not defined.
Error 2: 'PersianDateTimePicker' is not declared. It may be inaccessible due to its protection level.
Error 3: Type 'PersianDateTimePicker.DateTimePicker' is not defined.

----------


## mostafaaa

سلام
https://barnamenevis.org/showthread.p...=1#post1446196

----------


## Morteza_s

ممنون
برای دوستانی که این مشکل رو دارند
روش تغییر Target Framework:
فایل پروژه خود با فرمت vbproj یا vcproj را با Notepad یا هر برنامه دیگری باز کنید و خط زیر را حذف و فایل را ذخیره کنید:
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

----------


## mostafaaa

> ممنون
> برای دوستانی که این مشکل رو دارند
> روش تغییر Target Framework:
> فایل پروژه خود با فرمت vbproj یا vcproj را با Notepad یا هر برنامه دیگری باز کنید و خط زیر را حذف و فایل را ذخیره کنید:
> <TargetFrameworkProfile>Client</TargetFrameworkProfile>


 یا میتونید ....



> To change the target .NET Framework version or profile
> 
> In Visual Studio, open the project you want to change.
> 
> Right-click the project in Solution Explorer and then click Properties.
> 
> In the Project Designer, locate the Target Framework list, as follows.
> 
> For Visual Basic projects, click the Compile tab and then click Advanced Compile Options. The Target Framework list is in the Advanced Compiler Settings dialog box.
> ...

----------


## raminsoft

با سلام
و ممنون بخاطر بروز کردن کامپوننت
متاسفانه وقتی که به پروژه رو Sign میکنیم ( Sign the assembly ) موقع اجرا یا کامپایل این خطا رو میده :

Assembly generation failed -- Refrenced assembly 'PersianDateTimePicker' dose not have a strong name

ممنون میشم این مشکل رو نیز رفع نمایید.

----------


## nioton_1387

کامپوننت خیلی قشنگی درست کردی... دستت درد نکنه
من دانلود کردم .. ولی پروژه من می بایست با نت2 کامپایل بشه و نشد که بشه .. اما در کل ممنون

----------


## mostafaaa

سلام
از ورژن قبلی استفاده کن.

----------


## web_user

> سلام
> این کمپوننت تحت .Net Framework 4 کمپایل شده .
> به نظرم بهتره که ورژن Visual studio رو به 2010 ارتقا بدید.


سلام دوست عزيز:
كامپوننت تميزي هست ولي حيف امكان استفاده از اونو ندارم چون پروژه من  با Frame Work 3.5 كمپايل شده.
البته كامپوننت قبليت هم خوب چيزيه منتها مشكل اساسي كه داره اينكه فرمت تاريخش 2/2/1391هست و بهتر بود كه 02/02/1391 باشه چون بصورت رشته تو بانك ثبت شده براي گزارش گيري دچار مشكل ميشه.
بازم مرسي.

----------


## web_user

ُسلام
من يه كامپوننت DateTimePicker شمسي دارم كه خيلي خوب هست اما يه سري باگ داره از دوستان كسي ميتونه بررسيش كنه،باگاشو برطرف كنه؟
يكي از باگ هاش اينه كه در برخي از تاريخ ها مثل 31-04-1391 ارور ميده و از برنامه ميپره بيرون. بدبختيش اينجاست كه من پروژه خودمو باهاش نوشتم!!!

----------


## web_user

سلام
چطور ميشه اطلاعات ديتا گريد رو به كنترل ديتا گريد فرستاد، من كد رو اينطوري مي نويسم ولي ارور ميده:
 persianDateTimePicker2.Value= dataGridView1.CurrentRow.Cells[10].Value.ToString();
به اين شكل هم مي نويسم باز ارور ميده
 persianDateTimePicker2.Value+""= dataGridView1.CurrentRow.Cells[10].Value.ToString();
لطفاً راهنمايي كنيد

----------


## web_user

سلام 
با انجام اين كار ميشه از اين كامپوننت در فرم ورك 3.5 ازش استفاده كرد.
مرسي mostafaaa جان!

----------


## parhamt

سلامmostafaaa جان
سپاسگزار از همت و وقتي كه گذاشتي.ميخواستم بدونم حالتي هست كه به value بديم و combo بجاي تاريخ مقدار خالي نشون بده.
موفق باشي

----------


## ms_vb1987

سلام
ممنون از زحمت شما
فقط اگر روی Event هاش کار کنی بهتر میشه
براش Event هایی مثل DateChage هم بذار و رویدادهای فعلی اش هم بررسی کن اگر کاربرد ندارند میتوانی با دستور زیر حذفشون کنی...

    <Browsable(False), EditorBrowsable(EditorBrowsableState.Never)>
    Shadows Event *EventName*

----------


## JaVa

سلام ...

ممنون از زحمتی که کشیدی ولی خاصیت چب به راست براش نذاشتی !!!!!!!!!!

یا اینکه من پیداش نمی کنم.؟

----------


## zenith12000

با سلام
خسته نباشید میگم بخاطر کنترل خیلی زیبا و کاربردی که نوشتین. انیمیشن های موقع انتخاب سال و ماه که واقعا محشره.
فقط یک مشکل اساسی داره و اون اینکه با کیبورد نمیشه تاریخ را توش تایپ کرد. اگر امکان کار در حالت متنی هم بتونین بهش اضافه کنین خیلی عالی میشه. به نظر من باید به کاربرها اجازه داد بدون استفاده از ماوس هم براحتی تاریخ مورد نظرشون را وارد کنند و حتی امکان بالا و پایین کردن روز و ماه و سال بطور جداگانه بوسیله کیبورد بدون اینکه datepicker نمایش داده شده باشه میتونه خیلی مفید باشه.
راستی چرا بصورت open source منتشرش نمیکنید تا بقیه هم بتونن ویژگیهای بیشتری بهش اضافه کنن؟ حیفه واقعا این کامپوننت که به این خوبی نوشته شده نیمه کاره بمونه
بازهم ممنون

----------


## ok.baby

> سلام
> چند سال پیش توی یکی از پروژه هام بابت احتیاجی که داشتم کنترل DateTimePicker نوشتم و اون رو برای استفاده دیگر دوستان توی سایت هم قرار دادم(اینجا). که خوب یا بد مورد توجه برخی از دوستان برنامه نویس قرار گرفت. در طی این مدت دوستان زیادی لطف داشتن و از طریق ایمیل و یا پیغام خصوصی درخواست داشتن که ورژن جدیدی از این کنترل رو بنویسم که متاسفانه علارقم میل باطنی خودم و به علت مشغله زیاد  فرصت کار کردن روش رو به صورت کامل نداشتم ولی هر از چند گاهی که سرم خلوت تر میشد روش کار میکردم.( که هنوز از نظر من تکمیل نیست).
> با این حال خوب یا بد اینجا قرارش میدم تا دوستان تستش کنن و اگه اشگالی داشت بهم اطلاع بدن تا برطرفش کنم.
> *properties*
> Format: برای تغیر فرمت نمایش از کوتاه "1/1/90" به بلند " چهارشنبه، 26 بهمن ، 1390"
> GregorianDate: تاریخ معادل میلادی روز انتخاب شده
> MaxDate
> MinDate
> Value: تاریخ شمسی به صورت String و با فرمت "yyyy/MM/dd"
> ...


شما که همچین کامپوننت زیبا و پرکاربردی نوشتی، کاش یکم ورژن ها رو کمتر میگرفتی که تعداد بیشتری بتونن استفاده کنن.
من با فریم ورک 3 و ویژوال 2008 چیکار کنم حالا  :ناراحت:

----------


## asadi4t

سلام
عالی
ممنون

----------


## parisa.s

سلام، من قصد داشتم از این کامپوننت استفاده کنم، فایل Dll  به Toolbox اضافه نمیشه،هیچ اروری نمیده ولی هیچ کنترلی هم به Toolbox اضافه نمیشه

----------


## فرید نجفلو

ورژن فریم ورک پروژه رو چک کنید (باید 4 باشه)
راحت ترین راه اضافه کردن کنترل به ToolBox  هم اینکه فایل Dll رو کپی و توی یکی از تب های Toolbox (مثلا General ) کلیک راست و Paste کنید

----------


## pourya-x7x

> با سلام
> خسته نباشید میگم بخاطر کنترل خیلی زیبا و کاربردی که نوشتین. انیمیشن های موقع انتخاب سال و ماه که واقعا محشره.
> فقط یک مشکل اساسی داره و اون اینکه با کیبورد نمیشه تاریخ را توش تایپ کرد. اگر امکان کار در حالت متنی هم بتونین بهش اضافه کنین خیلی عالی میشه. به نظر من باید به کاربرها اجازه داد بدون استفاده از ماوس هم براحتی تاریخ مورد نظرشون را وارد کنند و حتی امکان بالا و پایین کردن روز و ماه و سال بطور جداگانه بوسیله کیبورد بدون اینکه datepicker نمایش داده شده باشه میتونه خیلی مفید باشه.
> راستی چرا بصورت open source منتشرش نمیکنید تا بقیه هم بتونن ویژگیهای بیشتری بهش اضافه کنن؟ حیفه واقعا این کامپوننت که به این خوبی نوشته شده نیمه کاره بمونه
> بازهم ممنون


من هم با نظر ایشون موافقم !
این که بشه به صورت همون Text که هستش بهش مقدار بدیم خیلی خوب میشه ! مثلا با زدن دکمه بالا و پایین کیبورد تاریخ کم و زیاد بشه ، مثل ورژن اصلی ماکروسافت !

در ضمن 1 سوال هم داشتم ، اینکه این انیمیشن های سال و ماه رو بهش اضافه کردین ، باعث کندی برنامه نمیشه ؟؟

----------


## totti_acmilan17

> عکس اررور و ضمیمه می کنم 
> 
> اکه datetimepicker رو تو پروپرتی دیتاش روی فیلد تاریخم ست نکنم بدون مشکل نشون میده اما اگه به فیلد وصلش کنم مثل تصویر پیوست میشه ...
> 
> ضمیمه 82898


آقا اگه مشکلت حل شده ما رو هم راهنمایی کن همین مشکل رو دارم بایند کردم ولی وقتی کلیک کنم که باز شه همین خطا رو تو 2010 میده !!!!!

----------


## h_pahlevan

دمت گرم خيلي خوب بود.دستت درد نكنه دادش مهندس :تشویق:

----------


## mohsen22

سلام  اگر کسی  سمپل پست 32 رو داونلود کرده مجددا اپ کنه چون  لینکش حذف شده!؟
مرسی

----------


## programerinfonet

شلام
دوستان من این کامپوننت رو دانلود و اضافه کردم اما خطا میده که فضای نام این کامپوننت رو اضافه نمایید
فضای نامش چیه ؟ نمی دونم
20120107094018cb-Fata-logo.jpg

----------


## raziyehbazargan

من از datetime picker که دوستان در سایت گذاشتن استفاده میکنم .میخوام  اگر تاریخ 1392/03/12 بود در قسمت دیگه تعداد روز رو بگیره مثلا 10 روز و  تاریخ 1392/03/22 رو نمایش بده

چطور اینکارو میتونم انجام بدم؟؟؟؟؟؟؟؟؟

----------


## mohsen22

> من از datetime picker که دوستان در سایت گذاشتن استفاده میکنم .میخوام  اگر تاریخ 1392/03/12 بود در قسمت دیگه تعداد روز رو بگیره مثلا 10 روز و  تاریخ 1392/03/22 رو نمایش بده
> 
> چطور اینکارو میتونم انجام بدم؟؟؟؟؟؟؟؟؟


خدمت شما.. اینو می خواستین ؟

----------


## raziyehbazargan

> خدمت شما.. اینو می خواستین ؟


دوست عزیز ممنومم دقیقا چیزیه که میخوام
اما متد dateadd رو ندارم؟؟؟؟؟؟
از همین کنترل دارن استفاده میکنم
اما همچین چیزی ندارم

----------


## Sub Zero

اقا مصطفی لطف کن واسه اینکه کار من و خیلی از دوستای دیگه راه بیافته با فریم ورک   3 یا 3.5  هم کامپایلش کن

----------


## Sub Zero

> دوست عزیز ممنومم دقیقا چیزیه که میخوام
> اما متد dateadd رو ندارم؟؟؟؟؟؟
> از همین کنترل دارن استفاده میکنم
> اما همچین چیزی ندارم


 روی متد کلیک راست کنید و گزینه Goto Definition رو بزنید تا متوجه بشید از کجا اومده . در ضمن برای نمایش درست نتیجه اضافه کردن روزها از کد زیر استفاده کنید .
If TextBox1.Text <> "" Then
            Dim d2 As Date
            Dim d3 As Integer
            d2 = PersianDateTimePicker1.Value
            d3 = TextBox1.Text
            With DateAdd(DateInterval.Day, d3, d2)
                Label4.Text = String.Format("{0}/{1}/{2}", .Year, .Month, .Day)
            End With
        Else
            MsgBox("empty")
        End If

----------


## 1157478

سلام
یه سوال داشتم و اون اینه که من تاریخ رو تو دیتا بیس ذخیره کردم حالا میخوام برای ویرایش تاریخ قبلی اون رو از پایگاه داده به داخل DateTimePicker لود کنم چه کار باید بکنم؟

مثلا یه همچین چیزی میخوام

 "PersianDateTimePicker .Value="1392/03/15

که 1392/03/15 را از دیتا بیس که قبلا ذخیره شده بوده داخلش قرار میدهیم

ممنون اگه کسی راهنمایی کنه

----------


## nasim bahari

بجای value از text استفاده کن

----------


## morrning

آقا دستت درد نکنه بابت این کامپوننت . میشه با دات نت 2 هم کامپایلش کنید؟

----------


## barnamenevism

با سلام می دونم خیلی وقته از این تاپیک کذشته ولی اینو  میذارم شاید یکی آمدو اینم بدردرش خورد.
 System.Globalization.PersianCalendar p = new System.Globalization.PersianCalendar();
            dateTimePicker1.DateValue = p.GetYear(DateTime.Now).ToString() + "/" + p.GetMonth(DateTime.Now).ToString("#") + "/" + p.GetDayOfMonth(DateTime.Now).ToString("#");
اینو بزارید تو فرم لود تا  وقتی لود میشه مقدار datavalue  نال نباشه

----------


## hossainmohammady

با سلام و تشکر از کامپوننت عالی تون 
فقط یه مشکل اینکه من میخوام کامپوننت هر وقت نمایش پیدامیکنه تاریخ روز رو نمایش بده البته اینو که میگم تو برنامه دمو که نوشته بودید درست بود اما تو برنامه من نه 
و مثلا وقتی value کامپوننت رو خالی میکنم درست میشه ولی موقع کار با اون ارور میده تو عکس میتونید ببینید

----------


## NaserHadi

سلام  
منم چنین مشکلی دارم اگه ممکنه جواب بدید ممنون میشم

----------


## barnamenevisjavan

سلام نسخه WPF هم داره؟

----------


## behrooz69

خو دوستان مجبورین مگه . دارین کاماننتی رو تست میکنین که مشکل داره از HmFarsicalender استفاده کنید . تو پستها سرچ میکردید مشکلتون حل می شد . 
دوست من مقدار رشته رو که نمیتونی توش Integer ذخیره کنی . باید تو دیتابیس مقدار Date رو بذاری Nvarchar  و بعد بیای تو برنامه تکس باکس مربوط به تاریخ رو توش درج کنی یا سرچ کنی. والا به مشکل 30 روز و 28 روز و 31 روزه بودن ما و تاریخ میلادی برمیخورید . تو پست های من سرچ کنید هست

----------


## اوبالیت به بو

ممنون از پروژه خوبتون اما من یک مشکلی دارم  اون این هست که من می خوام دستوری داشته باشم تا Value کنترل رو null کنم. یعنی مقدار نداشته باشد. چون ممکن است در فرم من کاربر فیلد تاریخ را نداند و من میخوام مقدار Null به دیتابایس ارجاع بدم تنها راهی هم که می تونم تشخیص بدم این هست که مقدار Value رو چک کنم که مقدار دارد یا ندارد. کنترل شما خاصیت Null پذیر بودن ندارد.

----------


## farhad85

سلام ممنونم ااز شما 
اولین وآخرین سالش از چند تا چند شروغ کردین؟

نو ورژن معمولیش از آخرین یا اولین سال بالا پاینتر رد کنی خطا میده ! اینو حلش کردی؟

----------


## bahram_aria

به نظر من این کنترل از لحاظ بسری و کارایی بسیار کنترل خوبی شده. خواهشم اینه که رهاش نکنید و از این به بعد روی سبک کردن کنترل کار کنید و کاری کنید که موقع کلیک کردن Flush نزنه :-) من خیلی لذت بردم و در برنامم استفاده کردم. موفق باشین.

----------


## falcon1

با تشکر فراوان - از زحمتی که کشیدید.

----------


## nazari546

سلام ممنون از شما

با توجه به اینکه معمولاً برای چاپ از کریستال ریپورت استفاده میشه و کریستال ریپورت از دات نت 4 پشتیبانی نمیکنه اگه امکان داره با دات نت 3 باشه همه میتونن در برنامه هاشون استفاده کنن

----------


## farhad85

ممنون خسته نباشی وافعا

----------


## haamidd

اقا من این فایل dll رو به ریفرنسام اد کردم

حالا چطور باید این date picker رو به پروژم اضافه کنم؟!!


توی toolbox چجوری باید بیارمش؟!!

----------


## haamidd

اقا من این فایل dll رو به ریفرنسام اد کردم

حالا چطور باید این date picker رو به پروژم اضافه کنم؟!!


توی toolbox چجوری باید بیارمش؟!!



جواااااااااااااب لطفا

----------


## Redmond

> اقا من این فایل dll رو به ریفرنسام اد کردم
> 
> حالا چطور باید این date picker رو به پروژم اضافه کنم؟!!
> 
> 
> توی toolbox چجوری باید بیارمش؟!!
> 
> 
> 
> جواااااااااااااب لطفا


فایل dll ای که دانلود کردی رو Durg and Drop کن بندازش توی قسمت Toolbox های ویژوال استادیو

----------


## haamidd

نشد که حاجی

----------


## نسترن خسروی

سلام ببخشید چطور میشه از این تقویم استفاده کرد و اون رو به پروزه اضافه کرد؟

----------


## afi_program

خیلی ممنون.
من از toolbox به فرمم اضافه اش کردم ولی خطا میده:Error    2    The type or namespace name 'PersianDateLibrary' could not be found (are you missing a using directive or an assembly reference?)

----------


## vB.N3T

دوستان این  خطا چطور میشه رفع کرد 

Error    1    The type or namespace name 'PersianDateLibrary' could not be found (are you missing a using directive or an assembly reference?)    D:\Project Farmer\Farmer\Farmer\Frm_month.Designer.cs    79    17    Farmer

----------


## mohammadmowlavi

سلام ضمن تشکر از زحماتتون چطور میشه به کاربرم اجازه بدیم خودش داخل این کامپوننت تایپ کنه 
یعنی مجبور نباشه فقط انتخاب کنه!

----------


## Mohammad.Bahari

سلام دوستان
خیلی عذر میخوام
از این DLL باید خودم با کد نویسی ایجادش کنم ؟
یا از Tool Box هم میشه آوردتش ؟

----------


## f.hojjati

سلام من میخواستم مدت رو با استفاده از دو تاریخ بدست بیارم میشه راهنماییم کنین؟

----------


## mostafaaa

با سلام به همه دوستان برنامه نویس
سورس برنامه رو توی پست اول قرار دادم تا هرکسی دوست داشت بتون توسعش بده و استفاده کنه.
با سپاس
ادریسیان

----------


## saeidghadiri

سلام آقا مصطفی عزیز، ممنون بخاطر این کامپوننت.
نمونه برنامه ای داری توش این فیلد باشه که تو sql ذخیره شه حقیقش اینه که من اینو بلد نیستم

----------


## aria62

> سلام
> چند سال پیش توی یکی از پروژه هام بابت احتیاجی که داشتم کنترل DateTimePicker نوشتم و اون رو برای استفاده دیگر دوستان توی سایت هم قرار دادم(اینجا). که خوب یا بد مورد توجه برخی از دوستان برنامه نویس قرار گرفت. در طی این مدت دوستان زیادی لطف داشتن و از طریق ایمیل و یا پیغام خصوصی درخواست داشتن که ورژن جدیدی از این کنترل رو بنویسم که متاسفانه علارقم میل باطنی خودم و به علت مشغله زیاد  فرصت کار کردن روش رو به صورت کامل نداشتم ولی هر از چند گاهی که سرم خلوت تر میشد روش کار میکردم.( که هنوز از نظر من تکمیل نیست).
> با این حال خوب یا بد اینجا قرارش میدم تا دوستان تستش کنن و اگه اشگالی داشت بهم اطلاع بدن تا برطرفش کنم.
> *properties*
> Format: برای تغیر فرمت نمایش از کوتاه "1/1/90" به بلند " چهارشنبه، 26 بهمن ، 1390"
> GregorianDate: تاریخ معادل میلادی روز انتخاب شده
> MaxDate
> MinDate
> Value: تاریخ شمسی به صورت String و با فرمت "yyyy/MM/dd"
> ...


درود بر شما. عالی بود. دستت درد نکنه mostafaaa جان. خیلی کارم جلو افتاد. موفق باشی

----------


## samiasoft

سلام

من تاریخ امروز رو بوسیله دستور زیر از کمبوباکس DateTimePicker بدست می آورم :
 TextBox1.Text = Date1.SelectedDateInStringPersianحال چگونه تاریخ روز فردا رو بدست بیاریم؟

----------


## oveshli64

بسیار عالی بود - متشکرم

----------


## oveshli64

سلام -

Dim Shamsi As New Globalization.PersianCalendar
TextBox1.Text = Shamsi.GetYear(Now) & "/" & Shamsi.GetMonth(Now) & "/" & Shamsi.GetDayOfMonth(Now) + 1

----------


## oveshli64

> سلام
> 
> من تاریخ امروز رو بوسیله دستور زیر از کمبوباکس DateTimePicker بدست می آورم :
>  TextBox1.Text = Date1.SelectedDateInStringPersianحال چگونه تاریخ روز فردا رو بدست بیاریم؟


Dim Shamsi As New Globalization.PersianCalendar
TextBox1.Text = Shamsi.GetYear(Now) & "/" & Shamsi.GetMonth(Now) & "/" & Shamsi.GetDayOfMonth(Now) + 1

----------


## علیرضاقانونی

سلام داداش محبت کن سورس سالم این کامپونت را برام بفرست alirezaganooni@yahoo.com

----------

