PDA

View Full Version : چطوری میشه فقط کارکتر های خاصی رو تو تکس باکس وارد کرد و بقیه کارکتر ها تایپ نشود؟؟؟؟؟



javadasadi
چهارشنبه 14 دی 1390, 09:44 صبح
سوال 1 :سلام دوستان من میخوام یه تکس باکس داشته باشم که فقط حرو ف a-z و اعداد 0..9 را بشه توش ئارد کرد و بثیه کارکتر ها را تایپ نکنه الطفا اگه کسی راحلشو داره کمکم کنه
سوال 2:
بعضی از تکس باکس ها مثلا تکس تغییر نام و رمز عبور ،یه نوشته کمرنگ تو خودش داره که وقتی روش کلیک مکنی پاک میشه و مقدار وارد میکنی این کار چطوری ممکنه؟؟؟؟

ozzy_mra
چهارشنبه 14 دی 1390, 09:58 صبح
1- در رویداد key_Press مربوط به تکست باکست می تونی این کنترل رو انجام بدی مثلاً کد زیرو تو این رویداد بنویسی کاربر عدد نمیتونه وارد کنه

if ((char.IsDigit(e.KeyChar)))
e.Handled = true;
2- برای این کار هم راههای زیادی هست مثلاً یکیش این میتونه یباشه که تو لود فرمت اول یه متن به عنوان تکست به تکست باکست نسبت بدی و در رویداد enter و leave هم چک کنی اگر تکست بکست خالی بود تکست مورد نظرت رو نمایش بده

mohammad_2039
چهارشنبه 14 دی 1390, 10:02 صبح
سلام دوست عزیز
در مورد مشکل اولت، یه سرچ تو سایت بزن نمونه زیاد هست. در مورد دوم هم اون چیزی که میخوای پیش فرض تو تکس باکست باشه رو تو خاصیت تکست تکس باکس بنویس تا هنگام اجرا نمایش بده بعد در رویداد keypress یا inter اون تکس بنویس textBox.clear();
حالا وقتی تو تکس باکس کلیک کن یا با تب واردش بشن نوشته پیش فرض پاک میشه و میتونه چیز جدید بنویسه.

javadasadi
چهارشنبه 14 دی 1390, 11:04 صبح
1- در رویداد key_Press مربوط به تکست باکست می تونی این کنترل رو انجام بدی مثلاً کد زیرو تو این رویداد بنویسی کاربر عدد نمیتونه وارد کنه

if ((char.IsDigit(e.KeyChar)))
e.Handled = true;
2- برای این کار هم راههای زیادی هست مثلاً یکیش این میتونه یباشه که تو لود فرمت اول یه متن به عنوان تکست به تکست باکست نسبت بدی و در رویداد enter و leave هم چک کنی اگر تکست بکست خالی بود تکست مورد نظرت رو نمایش بده
من میخوام حروف فارسی وارد نشه همه گزینه هارو امتحان کردم اما حروف فارسی رو پیدا نکردم راهنمایم کنید لطفا

ozzy_mra
چهارشنبه 14 دی 1390, 11:54 صبح
من میخوام حروف فارسی وارد نشه همه گزینه هارو امتحان کردم اما حروف فارسی رو پیدا نکردم راهنمایم کنید لطفا
این کد رو در رویداد key_press بنویس هر کاراکتر دیگه ای هم که دلت نمی خواد نشون بده رو به case اضافه کن
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case 'ا':
case 'ب':
case 'پ':
case 'ت':
case 'ث' :
//این کیس رو برای تمام حروف الفبا تکرار می کنی و برای آخری کد زیر رو می نویسی
e.Handled=true;
break;
}

}

rezam44
چهارشنبه 05 تیر 1392, 13:37 عصر
این کد رو در رویداد key_press بنویس هر کاراکتر دیگه ای هم که دلت نمی خواد نشون بده رو به case اضافه کن
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case 'ا':
case 'ب':
case 'پ':
case 'ت':
case 'ث' :
//این کیس رو برای تمام حروف الفبا تکرار می کنی و برای آخری کد زیر رو می نویسی
e.Handled=true;
break;
}

}


داداش اصلا عمل نمیکنه.....
خب رویداد keypress رو چطوری ایجاد کنم و کجا؟:متفکر:

danialafshari
چهارشنبه 05 تیر 1392, 14:00 عصر
فکر کنم بهتره از regex استفاده کنید

rezam44
چهارشنبه 05 تیر 1392, 14:15 عصر
فکر کنم بهتره از regex استفاده کنید


داداش میشه میشه کمکم کنی..
من 2 تا تکس باکس دارم که می خوام فقط عدد بگیرن
کد بلدی؟
راستی اینم بگم که رویداد kepress رو هم که ایجاد می کنم و اون کدهایی که دوستان گفتن رو کپی می کنم... عمل نمیکنه اصلا...
کمک لطفا

aradrobo
چهارشنبه 05 تیر 1392, 15:10 عصر
پاسخ سوال شما اینجا هست :
http://barnamenevis.org/showthread.php?401368-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

ashkan1234
چهارشنبه 05 تیر 1392, 15:11 عصر
داداش میشه میشه کمکم کنی..
من 2 تا تکس باکس دارم که می خوام فقط عدد بگیرن
کد بلدی؟
راستی اینم بگم که رویداد kepress رو هم که ایجاد می کنم و اون کدهایی که دوستان گفتن رو کپی می کنم... عمل نمیکنه اصلا...
کمک لطفا
برای تکست باکسهای عددی خدمت شما:
در رویداد Key_Press بنویسید!
if (e.KeyChar <= '9' && e.KeyChar >= '0' || e.KeyChar==8 || e.KeyChar == '.' )
e.Handled = false;
else
e.Handled = true;
KeyChar==8 برای بک اسپیس گذاشتم!
KeyChar=='.' هم برای اعداد اعشاری!
اگه نخواستی اون دوتارو حذف کن!
موفق باشید!:لبخند:

rezam44
چهارشنبه 05 تیر 1392, 16:06 عصر
پاسخ سوال شما اینجا هست :
http://barnamenevis.org/showthread.php?401368-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE


والله نشد !!!
http://ww3.zz.mu/up/51dc802382ce.jpg

IMANAZADI
چهارشنبه 05 تیر 1392, 18:12 عصر
روی فرم اصلی کلیک کنید در پروپرتیز فرم گزینه KeyPreview رو فعال کن (true)تا کدها کار کنند

CsharpNevisi
چهارشنبه 05 تیر 1392, 19:33 عصر
برای نوشته کمرنگ میتونی از کامپوننت های آماده استفاده کنی چون راحتتره مثل تکس باکس های دات نت بار

rezam44
چهارشنبه 05 تیر 1392, 21:50 عصر
روی فرم اصلی کلیک کنید در پروپرتیز فرم گزینه KeyPreview رو فعال کن (true)تا کدها کار کنند


بازم نشد
چی کار کنم؟
http://cis.pusku.com/up/0e19ce0dbabb.jpg:ناراحت:

IMANAZADI
چهارشنبه 05 تیر 1392, 23:44 عصر
کد شما یک ایراد داره باید قسمت آخر به صورت زیر اصلاح بشه


e.KeyChar==(Char)Keys.Back

بعد میتونید از این کد نیز استفادهکنید




if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)))
{
e.Handled = true;
}




از این کد استفاده کن ببین جواب میده یا ایراد از جای دیگری هست

rezam44
پنج شنبه 06 تیر 1392, 01:05 صبح
کد شما یک ایراد داره باید قسمت آخر به صورت زیر اصلاح بشه


e.KeyChar==(Char)Keys.Back

بعد میتونید از این کد نیز استفادهکنید




if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)))
{
e.Handled = true;
}




از این کد استفاده کن ببین جواب میده یا ایراد از جای دیگری هست



http://up.download.ir/di/TS8N/Untitled1.jpg

mz6488
پنج شنبه 06 تیر 1392, 07:08 صبح
تو قسمت else یه دونه مساوی بزار

ashkan1234
پنج شنبه 06 تیر 1392, 09:19 صبح
چرا آخه خودتو اذیت میکنی؟!
کدیرو که قرار دادم بدون مشکل کار میکنه!
بفرمایید براتون سورسش کردم!
106213:لبخند:

rezam44
جمعه 07 تیر 1392, 14:52 عصر
چرا آخه خودتو اذیت میکنی؟!
کدیرو که قرار دادم بدون مشکل کار میکنه!
بفرمایید براتون سورسش کردم!
106213:لبخند:

دمت جیز ویز :لبخند:

rezam44
جمعه 07 تیر 1392, 14:59 عصر
چرا آخه خودتو اذیت میکنی؟!
کدیرو که قرار دادم بدون مشکل کار میکنه!
بفرمایید براتون سورسش کردم!
106213:لبخند:


می دونی باید این خط رو هم کپی میکردم تو form1.designer.cs
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tex tBox1_KeyPress);
تا عمل کنه....:لبخند:

الان دیگه کار میکنه
سپاس:تشویق::قلب:

rezam44
جمعه 07 تیر 1392, 15:02 عصر
چرا آخه خودتو اذیت میکنی؟!
کدیرو که قرار دادم بدون مشکل کار میکنه!
بفرمایید براتون سورسش کردم!
106213:لبخند:

تنها ایرادش اینه که توش متن کپی میشه کرد...:افسرده:

ashkan1234
جمعه 07 تیر 1392, 15:30 عصر
تنها ایرادش اینه که توش متن کپی میشه کرد...:افسرده:

چون در اونت KeyPress این دستورات رو نوشتیم!(یعنی زمانی که کلیدی فشرده شد بیا این عملیات رو انجام بده)

ashkan1234
جمعه 07 تیر 1392, 15:42 عصر
ببینم این راضیت میکنه؟
توی اونت Change بنویس:
long a;
if (!long.TryParse(textBox1.Text, out a))
{

textBox1.Clear();
}

rezam44
جمعه 07 تیر 1392, 15:51 عصر
ببینم این راضیت میکنه؟
توی اونت Change بنویس:
long a;
if (!long.TryParse(textBox1.Text, out a))
{

textBox1.Clear();
}


تشکر از لطفتون:خجالت::لبخند::بوس: