توی سی شارپ 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
- بازدید :
164
- پاسخ :
2
|
تاریخ :
1398/10/01
- ساعت :
01:02:00 PM
- بازدید :
5973
- پاسخ :
1
|
تاریخ :
1399/11/10
- ساعت :
10:01:00 PM
- بازدید :
7658
- پاسخ :
5
|
تاریخ :
1404/01/28
- ساعت :
10:46:00 AM
- بازدید :
194
- پاسخ :
1
|
تاریخ :
1404/01/28
- ساعت :
10:27:00 AM
- بازدید :
177
- پاسخ :
1
|
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
4226
- پاسخ :
2
|
تاریخ :
1403/12/02
- ساعت :
12:09:00 AM
- بازدید :
512
- پاسخ :
1
|
تاریخ :
1398/07/08
- ساعت :
12:21:00 AM
- بازدید :
3197
- پاسخ :
2
|
تاریخ :
1403/11/23
- ساعت :
08:24:00 PM
- بازدید :
500
- پاسخ :
2
|
تاریخ :
1399/04/09
- ساعت :
08:51:00 PM
- بازدید :
3285
- پاسخ :
1
|
تاریخ :
1398/09/08
- ساعت :
11:21:00 PM
- بازدید :
5156
- پاسخ :
3
|
تاریخ :
1404/04/20
- ساعت :
12:20:00 PM
- بازدید :
46
- پاسخ :
1
|
تاریخ :
1401/01/28
- ساعت :
04:04:00 PM
- بازدید :
2704
- پاسخ :
1
|
تاریخ :
1404/04/16
- ساعت :
05:27:00 PM
- بازدید :
71
- پاسخ :
1
|
تاریخ :
1404/04/16
- ساعت :
06:22:00 PM
- بازدید :
47
- پاسخ :
1
|
تاریخ :
1404/03/22
- ساعت :
06:32:00 PM
- بازدید :
122
- پاسخ :
0
|
تاریخ :
1404/04/12
- ساعت :
01:15:00 PM
- بازدید :
61
- پاسخ :
1
|
تاریخ :
1399/12/17
- ساعت :
02:47:00 PM
- بازدید :
8068
- پاسخ :
4
|
تاریخ :
1404/04/04
- ساعت :
02:25:00 PM
- بازدید :
62
- پاسخ :
1
|
تاریخ :
1404/04/04
- ساعت :
03:35:00 PM
- بازدید :
73
- پاسخ :
1
|