با سلام
دوستان خواهشا کمکم کنید گیرکردم بد
دوروز گیر ورودی تاریخم هر کاری میکنم درست نمیشه
من برای ورود تاریخ از تکس باس استفاده میکنم
چون دارم از متریال دیزاین استفاده میکنم و DatePicker اون شمسی نیستش و از DatePicker ها دیگه هم به دلیل ظاهر متفاوت با متریال دیزاین نمی خوام استفاده کنم
وچون تاریخ رو به صورت اینت به شکل 13980503 توو دیتابیس ذخیره کردم
میخوام از تکس باس برای دریافت تاریخ از کاربر استفاده کنم
می خوام به صورتی باش که کابر عدد رو به شکل 13980209 وارد کن و و نمایشش به صورت 1398/02/09 باش براش
و بحث کنترل رو هم روش میخوام مثلا 139829 نتونه وارد کن عدد و...
از بس تو این نت سرچ زدم و هرکی هرچی گفت رو کردم خود پروژم به مشکل خورده
ممنون میشم منو از این مخمصه نجات بدین
سلام دوست گرامی.
ابتدا در بدنه فرم خود کد زیر رو قرار بدید.
private string FormatStringDate(int date)
{
string text = textBox.Text.Trim();
if (text.Length != 8) { textBox.Clear(); return ""; }
if (Convert.ToInt32(text.Substring(4, 2)) > 12 || Convert.ToInt32(text.Substring(4, 2)) < 1) { textBox.Clear(); return ""; }
if (Convert.ToInt32(text.Substring(6, 2)) > 31 || Convert.ToInt32(text.Substring(6, 2)) < 1) { textBox.Clear(); return ""; }
return text.Substring(0, 4) + "/" + text.Substring(4, 2) + "/" + text.Substring(6, 2);
}
سپس در رویدادهای GotFocus و LostFocus تکست باکس خود کدهای زیر رو مانند نمونه قرار بدید.
private void textBox_GotFocus(object sender, RoutedEventArgs e)
{
textBox.Text = textBox.Text.Replace("/", "");
}
private void textBox_LostFocus(object sender, RoutedEventArgs e)
{
textBox.Text = FormatStringDate(Convert.ToInt32(textBox.Text.Trim()));
}
به این صورت تاریخ وارد شده همون طور که گفتید کنترل میشه. حتی ورودی های ماه و روز هم کنترل میشه. مثلا کاربر نمیتونه ماه بیشتر از 12 و روز بیشتر از 31 رو وارد کنه. در صورت وارد کردن فرمت نادرست تکست باکس خالی میشه.
برای گرفتن مقدار تاریخ از تکست باکس به صورت int که فرمودید از کد زیراستفاده کنید. (جهت ذخیره در دیتابیس)
int date = Convert.ToInt32(textBox.Text.Trim().Replace("/", ""));
همچنین برای پر کردن تکست باکس زمانی که از دیتابیس سلکت میزنید از کد زیر استفاده کنید.
textBox.Text = FormatStringDate(SelectedDate);
SelectedDate در کد بالا همان تاریخی است که به صورت int از دیتابیس سلکت زدید.
کدهای بالا رو استفاده کنید و در صورتی که مشکل داشتید بگید تا بررسی کنیم.
موفق باشید.
Sowgandi
خیلی خیلی ممنون از لطفتون
چشم تست کنم
سپاس
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
312
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4279
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3875
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
654
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3170
- پاسخ :
2
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
657
- پاسخ :
0
|
تاریخ :
1398/09/14
- ساعت :
09:43:00 PM
- بازدید :
3316
- پاسخ :
2
|
تاریخ :
1398/09/17
- ساعت :
12:33:00 AM
- بازدید :
5857
- پاسخ :
2
|
تاریخ :
1402/04/18
- ساعت :
02:50:00 PM
- بازدید :
1227
- پاسخ :
1
|
تاریخ :
1402/01/19
- ساعت :
12:30:00 PM
- بازدید :
1560
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
57
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
97
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|