mahan0o0
سه شنبه 04 فروردین 1394, 10: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.");
}
}
من یک 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.");
}
}