PDA

View Full Version : محدود کردن MaskedTextBox به دریافت تاریخ معتبر



zahra1372
سه شنبه 20 آبان 1393, 15:19 عصر
سلام بر برنامه نویسیان عزیز:لبخندساده:
میشه یه نفر منو راهنمایی کنه چطوری میشه MaskedTextBox رو محدود به دریافت تاریخ معتبر کرد؟؟؟
همون طور که میدونید با mask = 0000/00/00 از ورود تاریخ مثلا 99/08/1393 جلوگیری نمیشه

با تشکر :گل:

parvizwpf
سه شنبه 20 آبان 1393, 16:01 عصر
این رو شما باید انجام بدید. که مقدارهای سال ماه روز آیا رنجش درست هست یا خیر. یا اینکه به کنترلهای که دوستان نوشته اند مراجعه کنید.

zahra1372
سه شنبه 20 آبان 1393, 17:47 عصر
این رو شما باید انجام بدید. که مقدارهای سال ماه روز آیا رنجش درست هست یا خیر. یا اینکه به کنترلهای که دوستان نوشته اند مراجعه کنید.

آخه نمیخام از کنترل استفاده کنم

danialafshari
سه شنبه 20 آبان 1393, 18:04 عصر
آخه نمیخام از کنترل استفاده کنم

1- باید سال- ماه - تاریخ رو جدا و کد نویسی های لازم جهت محدود کردن آن را انجام دهید
2- می تونید از کامپوننت استفاده کنید که توصیه میشه
3- همونطور که خدمتتون عرض کردم از متد DayOfWeek استفاده کنید
خب میدونید که هر تاریخ یک روزی از هفته رو نشون میده
بعد از وارد شدن تاریخ توسط کاربر اگر روزش مشخص شد که یعنی تاریخ درسته و اگر روزش مشخص نشد تاریخ اشتباس و mask رو خالی کنید
مطمئنا 1393/08/20 درسته و 1393/88/50 اشتباس و روزی رو برنمیگردونه
لینک مرجع DayOfWeek
http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek%28v=vs.110%29.aspx
امیدوارم متوجه شده باشید
موفق باشید

En_MK
سه شنبه 20 آبان 1393, 18:20 عصر
همونطور که دوستمون گفتند خودتون باید چک کنید
یعنی در key press تکس باکس چک کنید که اگر داره ماه یا روز را وارد میکنه بزگتر از 12 یا 31 نباشه (با substring کردن رشته ای که داره وارد میکنه..از طول رشته هم متوجه میشید داره ماهو وارد میکنه یا روز را)

zahra1372
سه شنبه 20 آبان 1393, 18:34 عصر
1- باید سال- ماه - تاریخ رو جدا و کد نویسی های لازم جهت محدود کردن آن را انجام دهید
2- می تونید از کامپوننت استفاده کنید که توصیه میشه
3- همونطور که خدمتتون عرض کردم از متد DayOfWeek استفاده کنید
خب میدونید که هر تاریخ یک روزی از هفته رو نشون میده
بعد از وارد شدن تاریخ توسط کاربر اگر روزش مشخص شد که یعنی تاریخ درسته و اگر روزش مشخص نشد تاریخ اشتباس و mask رو خالی کنید
مطمئنا 1393/08/20 درسته و 1393/88/50 اشتباس و روزی رو برنمیگردونه
لینک مرجع DayOfWeek
http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek%28v=vs.110%29.aspx
امیدوارم متوجه شده باشید
موفق باشید

اهااااااان چه جالب :ذوق زده::تشویق:
ولی این در مورد 31 شهریور چی میگه؟ :متفکر: (بعدا نوشت: 31 شهریور شاملش نمیشه تست کردم)
چرا این لینک باز نمیشه؟ ارور 502 میده :(

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

danialafshari
سه شنبه 20 آبان 1393, 20:07 عصر
اهااااااان چه جالب :ذوق زده::تشویق:
ولی این در مورد 31 شهریور چی میگه؟ :متفکر: (بعدا نوشت: 31 شهریور شاملش نمیشه تست کردم)
چرا این لینک باز نمیشه؟ ارور 502 میده :(

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

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

اشتباه می کنید و در 31 شهریور بدرستی کار میده:
private void button1_Click(object sender, EventArgs e)
{
System.Globalization.PersianCalendar ps = new System.Globalization.PersianCalendar();
MessageBox.Show(ps.ToDateTime(1393, 06, 31, 0, 0, 0, 0).DayOfWeek.ToString());
}
دوشنبه میشه
موفق باشید

zahra1372
چهارشنبه 21 آبان 1393, 17:09 عصر
سلام
لینک msdn هست و مشکلی نداره
کامپوننت های خوبی در سایت دیدم می تونید استفاده کنید

اشتباه می کنید و در 31 شهریور بدرستی کار میده:
private void button1_Click(object sender, EventArgs e)
{
System.Globalization.PersianCalendar ps = new System.Globalization.PersianCalendar();
MessageBox.Show(ps.ToDateTime(1393, 06, 31, 0, 0, 0, 0).DayOfWeek.ToString());
}
دوشنبه میشه
موفق باشید
سلام مرسی از اینکه جواب میدین:لبخندساده:
نه اون لینک برا من باز نمیشه!!!
Server Error 502 - Web server received an invalid response while acting as a gateway or proxy server
اهاااااان من با پرشین کلندر آشنا نبودم

privatevoid txtMaskedTextBoxDate_Leave(object sender, EventArgs e)
{
errorProvider3.Clear();
try
{
string str1 = txtMaskedTextBoxDate.Text;
string[] str2 = str1.Split('/');
var y = Convert.ToInt32(str2[0]);
var m = Convert.ToInt32(str2[1]);
var d = Convert.ToInt32(str2[2]);
System.Globalization.PersianCalendar ps = new System.Globalization.PersianCalendar();
var dow = ps.ToDateTime(y, m, d, 0, 0, 0, 0).DayOfWeek.ToString();
}
catch
{
errorProvider3.SetError(txtMaskedTextBoxDate, "تاریخ وارد شده نامعتبر است");
txtMaskedTextBoxDate.Clear();
}
}


فعلا با این سر و ته قضیه رو هم آوردم تا بعد...:لبخند:
(ولی یکم کنده!!! :متفکر:)
ولی در کل چیزی که میخاستم نشد:ناراحت: یکم همچین مسخره شد:گیج::لبخند:
مرسی:تشویق::قلب:

zahra1372
چهارشنبه 21 آبان 1393, 18:12 عصر
توجه توجه!!!:لبخند:
عاقااااااااا دوستانی که ممکنه بعد این تاپیکو بخونین:
من سرچ کردم و اولین چیزی که یافتم...:
http://barnamenevis.org/showthread.php?472132-تقویم-شمسی-DLL&highlight=%DA%A9%D9%86%D8%AA%D8%B1%D9%84+%D8%AA%D8 %A7%D8%B1%DB%8C%D8%AE
خیلی حال کردم جذبش شدم اصن:کف::کف::کف: میخام ازش استفاده کنم:قلب:
http://barnamenevis.org/attachment.php?attachmentid=125333&d=1415252567

http://barnamenevis.org/attachment.php?attachmentid=125334&d=1415253151