توی سی شارپ 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);
}
}
من با این مشکلم حل شد.
تاریخ :
1404/03/06
- ساعت :
03:00:00 PM
- بازدید :
146
- پاسخ :
2
|
تاریخ :
1398/10/01
- ساعت :
01:02:00 PM
- بازدید :
5945
- پاسخ :
1
|
تاریخ :
1399/11/10
- ساعت :
10:01:00 PM
- بازدید :
7609
- پاسخ :
5
|
تاریخ :
1404/01/28
- ساعت :
10:46:00 AM
- بازدید :
182
- پاسخ :
1
|
تاریخ :
1404/01/28
- ساعت :
10:27:00 AM
- بازدید :
160
- پاسخ :
1
|
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
4181
- پاسخ :
2
|
تاریخ :
1403/12/02
- ساعت :
12:09:00 AM
- بازدید :
489
- پاسخ :
1
|
تاریخ :
1398/07/08
- ساعت :
12:21:00 AM
- بازدید :
3164
- پاسخ :
2
|
تاریخ :
1403/11/23
- ساعت :
08:24:00 PM
- بازدید :
460
- پاسخ :
2
|
تاریخ :
1399/04/09
- ساعت :
08:51:00 PM
- بازدید :
3261
- پاسخ :
1
|
تاریخ :
1399/12/17
- ساعت :
02:47:00 PM
- بازدید :
8010
- پاسخ :
4
|
تاریخ :
1401/01/28
- ساعت :
04:04:00 PM
- بازدید :
2657
- پاسخ :
1
|
تاریخ :
1404/04/04
- ساعت :
02:25:00 PM
- بازدید :
33
- پاسخ :
1
|
تاریخ :
1404/04/04
- ساعت :
03:35:00 PM
- بازدید :
42
- پاسخ :
1
|
تاریخ :
1404/03/22
- ساعت :
06:32:00 PM
- بازدید :
80
- پاسخ :
0
|
تاریخ :
1403/10/08
- ساعت :
06:22:00 PM
- بازدید :
327
- پاسخ :
1
|
تاریخ :
1399/07/29
- ساعت :
05:26:00 PM
- بازدید :
8973
- پاسخ :
1
|
تاریخ :
1404/03/22
- ساعت :
11:17:00 PM
- بازدید :
125
- پاسخ :
2
|
تاریخ :
1404/03/20
- ساعت :
01:31:00 PM
- بازدید :
67
- پاسخ :
1
|
تاریخ :
1404/03/22
- ساعت :
11:10:00 AM
- بازدید :
93
- پاسخ :
1
|