PDA

View Full Version : تکس بکس با ورودی خاص(کد پستی ایران)



sara _irani
یک شنبه 13 آذر 1390, 10:26 صبح
تکس باکس با ورودی خاص(کد پستی ایران)
سلام به همه دوستان تو انجمن سرچ زدم یه چند چیز پیدا کردم اما متوجه نشدم چی کار کردن
یه برنامه می نویسم حالا میخوام برای کد پستی ایران فقز گد چستی مخصوص ایران رو بپیره
00000-00000
5تا عدد اول بعد خط تیره بعد 5 عدد دیگه
در غیر این صورت بگه استاندارد نیست فرمت

Hybrid
یک شنبه 13 آذر 1390, 10:33 صبح
سلام دوست عزیز میتونین از masktextbox استفاده کنین...

توضیح :

یه maskTextBox از toolbox به روی فرم بکشین تا ایجاد بشه در پنجره properties یه خاصیت داره به نام mask روش کلیک کنین حالا براتون یه پنجره باز میشه تو تکست باکس mask این مقدارو وارد کنین #####,##### ...تا کارتون راه بیوفته

موفق باشین.

sara _irani
یک شنبه 13 آذر 1390, 14:35 عصر
اونو میدونم
میخوام از تکس باکس عادی استفاده کنم

Mahmoud Zaad
یک شنبه 13 آذر 1390, 15:52 عصر
سلام
دو تا کار باید انجام بدید، اول با کدهای زیر تکست باکس رو محدود به پذیرش عدد و کاراکتر -(خط فاصله) بکنید(می تونید خاصیت MaxLength تکست باکس رو روی 11 قرار بدید که بیشتر از این قبول نکنه):

privatevoid textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || (e.KeyChar == (char)45)))
{
e.Handled = true;
}
}

دوم : با استفاده از کدهایی زیر اعتبارسنجی رو انجام بدید:
privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
//12345-12345

char[] charr = textBox1.Text.ToCharArray();


// برای جلوگیری از خطا بررسی می کنیم که کاراکترهای ورودی 11 تا باشند بعد اعتبارسنجی انجام شود
if (charr.Length == 11)
{
// بررسی وجود کاراکتر خط فاصله در کاراکتر
if (charr[5].ToString() != "-")
MessageBox.Show("خطا ");


// بررسی عدد بودن 5 کاراکتر اول
foreach (char ch in textBox1.Text.ToCharArray(0, 5))
{
if (ch.ToString() == "-")
MessageBox.Show(" خطا");
}


// بررسی عدد بودن 5 کاراکتر دوم(بعد از خط فاصله)
foreach (char ch1 in textBox1.Text.ToCharArray(6, 5))
{
if (ch1.ToString() == "-")
MessageBox.Show(" خطا");
}
}
}

sara _irani
دوشنبه 14 آذر 1390, 15:18 عصر
خیلی لطف کردن
یه سوال داشتم
من تازه شروع کردم
textBox1_KeyPress
این خاصیت کی پریس تکس باکس واسه چی
اصلا چیه

Mahmoud Zaad
دوشنبه 14 آذر 1390, 15:38 عصر
به طور ساده میشه گفت با این رویداد میشه فشرده شدن کلیدهای صفحه کلید رو توی برنامه کنترل کرد

nunegandom
دوشنبه 14 آذر 1390, 19:53 عصر
یعنی فشرده شدن اون چیز و از فشرده در آمدن (یعنی یک عمل keyDown و KeyUp) انجام میشه
میتونه هر شئ یی باشه، مثل باتن، صفحه کلید، تکس باکس...

sara _irani
چهارشنبه 16 آذر 1390, 15:26 عصر
از این کدهای شما استفاده کردم چیز خاصی نشد
خودم هم یه ذره خودم سر یه سرش گذاشتم
کارهای عجیب غریب می کنه
اصلان واسه این که عدد با - بگیر باید چی کار کنه

Mahmoud Zaad
چهارشنبه 16 آذر 1390, 18:04 عصر
در مورد قسمت اول سوال فایل ضمیمه رو ببینید.

در مورد قسمت دوم سوال، اگه به این لینک (http://rmhh.co.uk/ascii.html) مراجعه کنید می بینید که هر کدوم از کاراکترها یه کدی دارند، بنابراین میشه توی رویداد keypress از این کدها استفاده کرد و به کاربر اجازه داد تا کاراکترهایی که ما می خوایم رو وارد کنه:

if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || (e.KeyChar == (char)45)))
{
e.Handled = true;
}
در بخش اول(بعد از if) اجازه وارد کردن کاراکتر غیر عددی رو نمیدیم، در قسمت دوم(بعد از || اول) اجازه استفاده از بعضی کلیدها مثل backspace رو میدیم و در آخر هم اجازه وارد کردن کاراکتر شماره 45 یعنی خط فاصله رو میدیم.

sara _irani
پنج شنبه 17 آذر 1390, 13:59 عصر
شرمنده
من دیگه خیلی مبتدیم
این رویدادها رو نمی تونم بیارم
خیلی گشتم
مثلا در وی بی از بالای صفحه می آوردی اما تو سی شارپ نمیدونم
مرثی که وقت گران بهای خودتون رو میذارید

Mahmoud Zaad
پنج شنبه 17 آذر 1390, 14:25 عصر
اول تکست باکس(یا هر کنترل دیگری) مورد نظر رو انتخاب می کنید بعد از پنجره properties تب events علامت رعد و برق! رو انتخاب می کنید بعد روی رویداد(رخداد یا event ) مورد نظر دابل کلیک می کنید تا وارد قسمت کد نویسی بشید و ...
به صورت زیر: