PDA

View Full Version : سوال: مشکل در ثبت اطلاعات بعد از validate کردن



mahan0o0
سه شنبه 04 فروردین 1394, 09:43 صبح
سلام دوستان
من یک maskedtextbox دارم که کاربر باید تاریخ تولودشو توش وارد کنه برای چک کردن تاریخ هم از persiancalender استفاده کردم . مشکل من اینه وقتی ورودی کاربر validate میشه اگه تاریخ رو اشتباه وارد کرده باشه بهش پیام میده که تاریخ رو اشتباه وارد کردی و به textbox بعدی میره و حتی موقع ثبت اطلاعات در فرم هم فقط یک پیام میده و بعد تاریخ اشتباه رو ثبت میکنه. چکار کنم که کاربر تا تاریخ رو اصلاح نکرده از masekedtextbox بیرون نره یا اگر هم رفت موقع ثبت اطلاعات اجازه نده اطلاعات ثبت شه. کد برنامم رو هم واستون گذاشتم تا ببینید. ممنون میشم راهنمایی کنید.



private void maskedTextBox2_Validating(object sender, CancelEventArgs e)
{
Regex reg = newRegex(@"^(\d{4})/(\d{1,2})/(\d{1,2})$");
Match m = reg.Match(maskedTextBox2.Text);
if (maskedTextBox2.Text.ToString() == " / /")
{
maskedTextBox2.Text = " / /";
}
else if (m.Success)
{
int yyyy = int.Parse(m.Groups[1].Value);
int mm = int.Parse(m.Groups[2].Value);
int dd = int.Parse(m.Groups[3].Value);
PersianCalendar persianCalendar = newPersianCalendar();
try
{
DateTime dateTime = persianCalendar.ToDateTime(yyyy, mm, dd, 0, 0, 0, 0);
MessageBox.Show(string.Format("Entered date: {0}", dateTime));
}
catch (ArgumentOutOfRangeException)
{
MessageBox.Show("Invalid persian date.");
}
}
else
{
MessageBox.Show("Invalid persian date.");
}
}

Hamid2547
سه شنبه 04 فروردین 1394, 11:52 صبح
باید کدی که باهاش ولیدیت میکنید رو اینجا قرار بدید تا بشه درست جواب داد، ولی به صورت کلی توی event آرگیومنتتون چیزی هست به نام EventArgs e معمولا، این e ممکنه چیزی داشته باشه به نام e.Cancel که باعث میشه فرم ثبت نشه، یا اگر چنین چیزی نباشه باید کدی که باعث میشه به صفحه ی بعدی بره رو چک کنید اگر تاریخ ولید بود بعد کد اجرا بشه.

mahan0o0
سه شنبه 04 فروردین 1394, 12:07 عصر
باید کدی که باهاش ولیدیت میکنید رو اینجا قرار بدید تا بشه درست جواب داد، ولی به صورت کلی توی event آرگیومنتتون چیزی هست به نام EventArgs e معمولا، این e ممکنه چیزی داشته باشه به نام e.Cancel که باعث میشه فرم ثبت نشه، یا اگر چنین چیزی نباشه باید کدی که باعث میشه به صفحه ی بعدی بره رو چک کنید اگر تاریخ ولید بود بعد کد اجرا بشه.

خیلی ممنون از راهنماییتون. e.cancel رو true قرار دادم مشکل حل شد.کدم رو قرار دادم توی یه تاپیک دیگه با همین عنوان اشتباهی اینو ثبت کردم. حالا چطور حذف کنم اینو؟:خجالت: تازه عضو شدم زیاد باش آشنا نیستم

Hamid2547
سه شنبه 04 فروردین 1394, 14:03 عصر
خیلی ممنون از راهنماییتون. e.cancel رو true قرار دادم مشکل حل شد.کدم رو قرار دادم توی یه تاپیک دیگه با همین عنوان اشتباهی اینو ثبت کردم. حالا چطور حذف کنم اینو؟:خجالت: تازه عضو شدم زیاد باش آشنا نیستم
اگر چیزی باشه توی ویرایش پست هست، فکر نمیکنم کاربر عادی بتونه تاپیک حذف کنه، باید به مدیر اطلاع بدید.