نمایش نتایج 1 تا 13 از 13

نام تاپیک: بازهم مشکل همیشگی تایپ تاریخ در تکس بکس

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    شیراز
    پست
    70

    بازهم مشکل همیشگی تایپ تاریخ در تکس بکس

    سلام خدمت دوستان
    مشکل من این است هنگامی که در تکس باکس تاریخ تایپ می کنم درست تایپ نمی شود بهنوان مثال تایپ می کنم 24/12/52 نشان می دهد 52/12/24
    لازم بذکر است قبل از مطرح کردن این سئوال در تمام قسمتها سرچ کرده ام و همه گفته اند که فونت را فارسی کن و right to left را برابر true قرار بده - همه این کار ها را کرده ام ولی باز نشد خواهشمندم در صورت امکان راهنمایی دقیق وکامل نمایید .

  2. #2
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    یک کامپوننت برای رفع مشگل خود بنویسید یا از آماده ها استفاده کنید

  3. #3
    نقل قول نوشته شده توسط forozeshfard مشاهده تاپیک
    سلام خدمت دوستان
    مشکل من این است هنگامی که در تکس باکس تاریخ تایپ می کنم درست تایپ نمی شود بهنوان مثال تایپ می کنم 24/12/52 نشان می دهد 52/12/24
    لازم بذکر است قبل از مطرح کردن این سئوال در تمام قسمتها سرچ کرده ام و همه گفته اند که فونت را فارسی کن و right to left را برابر true قرار بده - همه این کار ها را کرده ام ولی باز نشد خواهشمندم در صورت امکان راهنمایی دقیق وکامل نمایید .
    چنین مشکلی نباید وجود داشته باشد.

    اگه نمیشه از MaskedEdit استفاده کن.

  4. #4
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    متاسفانه وجود داره

    و یکی از راه هاش اینه که برعکس بنویسی تا در ست نشون داده بشه

    یعنی به جای اینکه بنویسی 12/02/85 بنویسی 85/02/12 تا مثل اولی نشون بده

    که اصلا راه خوبی نیست


    به نظر من هم از همن maskededit استفاده کنید

  5. #5
    کاربر دائمی آواتار mostafa_leman
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    نیشابور
    پست
    187
    من قبلا یک dll توی سایت گذاشته بودم به نام MaskBox که اگه یک سرچ کوچیک بزنی پیداش میکنی .

  6. #6
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    از 3 تا textbox استفاده کنید. کنترل خیلی راحت میشه. تبدیلات شمسی و میلادی (البته مربوط به ورژن 2005) بسیار آسان میشه. اولی روز - دومی ماه - سومی سال

  7. #7
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    تبدیل تاریخ میلادی به شمسی

    این فایل رو به Refrence پروژت اضافه کن و ازش استفاده کن آخرشه
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    شیراز
    پست
    146
    اگر از maskedtextboxاستفاده کنی مشکال حل میشه

  9. #9
    نقل قول نوشته شده توسط programmermp مشاهده تاپیک
    متاسفانه وجود داره

    و یکی از راه هاش اینه که برعکس بنویسی تا در ست نشون داده بشه

    یعنی به جای اینکه بنویسی 12/02/85 بنویسی 85/02/12 تا مثل اولی نشون بده

    که اصلا راه خوبی نیست


    به نظر من هم از همن maskededit استفاده کنید
    نکنه شما ابتدا میخوای 12 سپس 02 سپس 85 رو تایپ کنی! خب اینطوری برعکس میشه. باید ابتدا 85 و سپس 02 و بعد 12 رو تایپ کنی!

  10. #10
    نقل قول نوشته شده توسط programmermp مشاهده تاپیک
    منظور بنده هم همین بود عزیز دل
    به نظر من هم از همن maskededit استفاده کنید
    با maskededit میتونید یک نمونه بگذارید که ابتدا روز سپس ماه و بعد سال درج شود؟

  11. #11
    -- به بحث در مورد موضوع تاپیک ادامه بدید --

    ولی برای حل مشکل تاریخ 2 راه وجود داره:
    1) یک کامپوننت بنویسید که هر طور میخواید ثبت بشه. (که وقت گیر است)
    2) مثل تمامی پروژه های فارسی نوشتن رو از سال به سمت روز ادامه بدهید. من پروژه ای از هیچ شرکتی ندیدم که روز به سمت سال بنویسد. (غیر از یکی دو مورد پروژه های تحت داس)
    و من هم بلد نیستم چنین کاری بکنم.

    فقط این راهنمایی رو خدمتتون میگم:
    بهتر است از یک MaskedTextBox استفاده کنید که کاربر نیاز به تایپ علامت "/" نداشته باشد. کافیست در Property کنترل مربوطه در قسمت Mask عبارت ذیل را درج نمایید
     ####/##/##
    یادتون نره که برای تاریخ فارسی RightToLeft کنترل True باشد.
    حال اگر لازم است در خروجی MaskedTextBox یعنی Text کاراکتر "/" هم نمایش داده شود خصیصه TextMaskFormat را برابر InclucleLiterals قرار دهید.
    خروجی
    MaskedTextBox.Text >>> 1385/01/01
    اگر لازم است در خروجی MaskedTextBox یعنی Text کاراکتر "/" نمایش داده نشود خصیصه TextMaskFormat را برابر ExcludePromptAndLiterals قرار دهید.
    خروجی
    MaskedTextBox.Text >>> 13850101
    بهتر است در TextMaskFormat از IncludePrompt و IncludePromptAndLiterals چون کاربرد چندانی ندارند.

    Prompt چیه:
    کاراکتر یا پیامى که توسط کامپیوتر ارائه مى شود تا مشخص کند که اماده پذیرفتن ورودى صفحه کلید است یعنی همون علامت "_" که اعداد روش تایپ میشوند.
    Literal چیه؟
    همون کارکتر جدا کننده اعداد است که شما اونو در تاریخ "/" قرار میدهید و ":" رو برای زمان انتخاب میکنید.
    ضمنا برای تایپ صحیح لازم است که نشانگر همیشه در ابتدای MaskedTextBox قرار بگیرد وگرنه تاریخ ناقص تایپ میشود. (مثلا کاربر روی MaskedTextBox کلیک میکنه و بدون اینکه ابتدای خط بره شروع به تایپ میکنه)
    برای جلوگیری از این مشکل در روال GotFocus و Click کنترل مربوطه این کدها را درج نمایید:

    MaskedTextBox1.Select(0, 0)
    با استفاده از این دو تابع میتونید علامت "/" از تاریخ بردارید یا اضافه کنید.

    Public Function fdtFormatDate(ByVal strDate As String) As String
    fdtFormatDate = Format$(strDate, "0000/00/00")
    End Function
    Public Function fdtUnFormatDate(ByVal strDate As String) As String
    fdtUnFormatDate = Mid$(strDate, 1, 4) & Mid$(strDate, 6, 2) & Mid$(strDate, 9, 2)
    End Function
    با استفاده از این تابع هم میتونید صحت تاریخ رو چک کنید:

    این Enum در قسمت اعلان عمومی درج شود
    Public Enum FDT_CheckDateTimeResultConstants
    FDT_NoError = 0
    FDT_ErrorInDate = 1
    FDT_ErrorInDay = 2
    FDT_ErrorInMonth = 3
    FDT_ErrorInYear = 4
    FDT_ErrorInDayMonth = 5
    FDT_ErrorInTime = 6
    FDT_ErrorInHour = 7
    FDT_ErrorInMinute = 8
    End Enum

    Public Function fdtCheckDate(ByVal DateForTest As String, Optional ByVal ShowWarning As Boolean = True, Optional ByVal DateMatter As String= "") As FDT_CheckDateTimeResultConstants
    If InStr(DateForTest, "_") <> 0 Or DateForTest = ""Or Len(DateForTest) < 8 Or Val(DateForTest) = 0 Then
    If ShowWarning Then MsgBox(" لطفاً تاریخ ««" & DateMatter & "»» را کامل وارد کنید",, "خطا در وارد کردن تاریخ ")
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_ErrorInDate
    Exit Function
    End If
    If Val(Mid$(DateForTest, 1, 4)) < 1350 Or Val(Mid$(DateForTest, 1, 4)) > 1481 Then
    If ShowWarning Then MsgBox(" لطفاً عدد سال تاریخ «" & DateMatter & "» را بین 1300 تا 1400 وارد کنید",, "خطا در وارد کردن تاریخ ")
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_ErrorInYear
    Exit Function
    End If
    If Val(Mid$(DateForTest, 5, 2)) > 12 Or Val(Mid$(DateForTest, 5, 2)) < 1 Then
    If ShowWarning Then MsgBox(" لطفاً عدد ماه تاریخ «" & DateMatter & "» را بین 1 تا 12 وارد کنید",, "خطا در وارد کردن تاریخ ")
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_ErrorInMonth
    Exit Function
    End If
    If Val(Mid$(DateForTest, 7, 2)) > 31 Or Val(Mid$(DateForTest, 7, 2)) < 1 Then
    If ShowWarning Then MsgBox(" لطفاً عدد روز تاریخ «" & DateMatter & "» را بین 1 تا 31 وارد کنید",, "خطا در وارد کردن تاریخ ")
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_ErrorInDay
    Exit Function
    End If
    If Val(Mid$(DateForTest, 5, 2)) > 6 And Val(Mid$(DateForTest, 7, 2)) > 30 Then
    If ShowWarning Then MsgBox(" عدد ماه و عدد روز تاریخ «" & DateMatter & "» با هم انطباق ندارد ",, "خطا در وارد کردن تاریخ ")
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_ErrorInDayMon th
    Exit Function
    End If
    fdtCheckDate = FDT_CheckDateTimeResultConstants.FDT_NoError
    End Function
    جناب forozeshfard پیشنهاد میکنم خودتون رو برای یک چنین مورد ناچیز اذیت نکنید.(منظورم جهت تایپ تاریخ که حالا از سال باشه یا از روز) مطمئن باشید که عیب محسوب نمیشود. به فکر کامل کردن و ارتقا سایر قسمت های پروژه خود باشید.
    موفق باشید!
    آخرین ویرایش به وسیله titbasoft : پنج شنبه 28 دی 1385 در 11:37 صبح

  12. #12
    کاربر دائمی آواتار mostafa_leman
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    نیشابور
    پست
    187
    اینم تکست باکس تاریخ
    توی properties خصوصیت mask رو برابر با LDate کنید
    در صورتی که میخوایین برای ورود ارقام استفاده کنید این خصوصیت رو برابر با Money کنید
    در صورتی که میخواین تاریخ رو به صورت مختصر وارد کنید این خصوصیت رو برابر SDate قرار بدین
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    شیراز
    پست
    70
    با سلام خدمت تمام دوستان
    سرکار خانم نیلوفر متشکرم از راهنمایی دقیق شما - مسک باکس را از اینتر نت گرفتم و با توضیحات شما مشکلم حل شد در کل دقیقا حق باشما است شاید مسئله تاریخ آنقدر هم مهم نباشد .
    جناب آقای مصطفی لمن از دقت و توجه شما هم بسیار ممنونم فایل ضمیمه را گرفتم بسیار موثر بود .
    جناب آقای صالحی ممنون از توجه جنابعالی و راهنمایهایتان

    با سپاس
    فروزش فرد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •