توی سی شارپ WPF یک تکست باکس داریم که توی اون تاریخ رو وارد میکنند
میخوایم در رویداد Lost Focus زمانی که از روی تکست باکس خارج شد , بررسی کنه اگر مقدار ورودی تاریخ اشتباه بود پیغام خطا بده و برگرده روی تسکت باکس تاریخ تا مجددا تاریخ صحیح رو وارد کنه و این کار تا زمانی که تاریخ درست رو وارد کنه ادامه داشته باشه
مشکل چیه ؟ :
وقتی داخل رویداد Lost Focus میگیم بعد از بررسی در صورت وجود خطا برگرد توی تکست باکس چون باهم تداخل داره توی یک حلقه گیر میفته و دایم پیغام خطا میده و بیرون نمیره !
Code Behind :
بررسی صحت تاریخ ورودی :
public static bool IsValidedDate(string tempDate)
{
if (!tempDate.Contains("/"))
{
//14000203
string sal = tempDate.Substring(0, 4);
string mah = tempDate.Substring(4, 2);
string rooz = tempDate.Substring(6, 2);
tempDate = $"{sal}/{mah}/{rooz}";
}
DateTime temp;
if (DateTime.TryParse(tempDate, out temp))
{
return true;
// Yay :)
}
else
{
return false;
// Aww.. :(
}
}
رویداد روی تکست باکس تاریخ :
private void DATE_N_LostFocus(object sender, RoutedEventArgs e)
{
if (!IsValidedDate(DATE_N.Text))
{
MessageBox.Show("مقدار تاریخ صحیح نیست", "", MessageBoxButton.OK, MessageBoxImage.Error);
DATE_N.Focus();
return;
}
}
لطفا راهنمایی بفرمایید باتشکر
دوستان این راه حل دوتا مشکل هست : یکی مشکل برگشت فوکوس روی کنترل در ورود مقدار غیر مجاز , مشکل فوکوس نکردن روی کنترل
private void text1_LostFocus(object sender, RoutedEventArgs e)
{
if (text1.Text != "1")
{
MessageBox.Show("Please Enter Valid Number !");
var restoreFocus = (System.Threading.ThreadStart)delegate { text1.Focus(); text1.SelectAll(); };
Dispatcher.BeginInvoke(restoreFocus);
}
}
من با این مشکلم حل شد.
تاریخ :
1403/01/29
- ساعت :
08:08:00 AM
- بازدید :
189
- پاسخ :
1
|
تاریخ :
1403/01/12
- ساعت :
05:36:00 PM
- بازدید :
212
- پاسخ :
1
|
تاریخ :
1403/01/19
- ساعت :
03:06:00 PM
- بازدید :
206
- پاسخ :
1
|
تاریخ :
1402/10/30
- ساعت :
05:11:00 PM
- بازدید :
451
- پاسخ :
1
|
تاریخ :
1402/09/20
- ساعت :
03:39:00 PM
- بازدید :
566
- پاسخ :
2
|
تاریخ :
1402/09/06
- ساعت :
03:03:00 PM
- بازدید :
513
- پاسخ :
1
|
تاریخ :
1402/10/06
- ساعت :
01:28:00 AM
- بازدید :
585
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
367
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
697
- پاسخ :
1
|
تاریخ :
1398/07/25
- ساعت :
09:37:00 PM
- بازدید :
3510
- پاسخ :
5
|
تاریخ :
1403/02/29
- ساعت :
06:34:00 PM
- بازدید :
21
- پاسخ :
0
|
تاریخ :
1403/02/24
- ساعت :
04:40:00 PM
- بازدید :
74
- پاسخ :
2
|
تاریخ :
1403/02/23
- ساعت :
02:24:00 PM
- بازدید :
119
- پاسخ :
5
|
تاریخ :
1403/02/25
- ساعت :
04:38:00 PM
- بازدید :
71
- پاسخ :
1
|
تاریخ :
1403/02/16
- ساعت :
01:25:00 PM
- بازدید :
163
- پاسخ :
4
|
تاریخ :
1403/02/20
- ساعت :
06:33:00 PM
- بازدید :
99
- پاسخ :
1
|
تاریخ :
1403/01/17
- ساعت :
08:30:00 PM
- بازدید :
281
- پاسخ :
3
|
تاریخ :
1401/11/15
- ساعت :
11:17:00 AM
- بازدید :
1219
- پاسخ :
1
|
تاریخ :
1402/04/01
- ساعت :
06:17:00 PM
- بازدید :
1170
- پاسخ :
0
|
تاریخ :
1403/02/20
- ساعت :
12:29:00 AM
- بازدید :
67
- پاسخ :
1
|