توی سی شارپ 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
- بازدید :
174
- پاسخ :
1
|
تاریخ :
1403/01/12
- ساعت :
05:36:00 PM
- بازدید :
207
- پاسخ :
1
|
تاریخ :
1403/01/19
- ساعت :
03:06:00 PM
- بازدید :
197
- پاسخ :
1
|
تاریخ :
1402/10/30
- ساعت :
05:11:00 PM
- بازدید :
447
- پاسخ :
1
|
تاریخ :
1402/09/20
- ساعت :
03:39:00 PM
- بازدید :
561
- پاسخ :
2
|
تاریخ :
1402/09/06
- ساعت :
03:03:00 PM
- بازدید :
506
- پاسخ :
1
|
تاریخ :
1402/10/06
- ساعت :
01:28:00 AM
- بازدید :
579
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
359
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
690
- پاسخ :
1
|
تاریخ :
1398/07/25
- ساعت :
09:37:00 PM
- بازدید :
3506
- پاسخ :
5
|
تاریخ :
1403/02/24
- ساعت :
04:40:00 PM
- بازدید :
60
- پاسخ :
2
|
تاریخ :
1403/02/23
- ساعت :
02:24:00 PM
- بازدید :
108
- پاسخ :
5
|
تاریخ :
1403/02/25
- ساعت :
04:38:00 PM
- بازدید :
51
- پاسخ :
1
|
تاریخ :
1403/02/16
- ساعت :
01:25:00 PM
- بازدید :
143
- پاسخ :
4
|
تاریخ :
1403/02/20
- ساعت :
06:33:00 PM
- بازدید :
90
- پاسخ :
1
|
تاریخ :
1403/01/17
- ساعت :
08:30:00 PM
- بازدید :
270
- پاسخ :
3
|
تاریخ :
1401/11/15
- ساعت :
11:17:00 AM
- بازدید :
1214
- پاسخ :
1
|
تاریخ :
1402/04/01
- ساعت :
06:17:00 PM
- بازدید :
1157
- پاسخ :
0
|
تاریخ :
1403/02/20
- ساعت :
12:29:00 AM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/02/19
- ساعت :
11:43:00 AM
- بازدید :
75
- پاسخ :
1
|