PDA

View Full Version : فقط حروف انگلیسی وارد شود



shima2006
دوشنبه 07 تیر 1389, 11:44 صبح
سلام دوستان
برای اینکه کاربر فقط حروف انگلیسی و اعداد رو بتونه در یک تکست باکس وارد کنه باید چیکار کرد؟

meri_rad
دوشنبه 07 تیر 1389, 11:49 صبح
سلام دوستان
برای اینکه کاربر فقط حروف انگلیسی و اعداد رو بتونه در یک تکست باکس وارد کنه باید چیکار کرد؟
تو رویداد اینتر و key downتکست باکست کد زیر بذار


System.Globalization.CultureInfo english = new System.Globalization.CultureInfo("en");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(english );

mmd2009
دوشنبه 07 تیر 1389, 11:53 صبح
با سلام

البته باید paste کردن بازم این مشکل وجود داره که حروف فارسی هم نوشته شود

shima2006
جمعه 11 تیر 1389, 09:21 صبح
تو رویداد اینتر و key downتکست باکست کد زیر بذار

کد:
System.Globalization.CultureInfo english = new System.Globalization.CultureInfo("en");InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(english );

من این کد رو در اون دو تا رویدادی که گفتید نوشتم ولی موقع اجرا وقتی کاربر Alt+Shift رو میگیره اولین کاراکتر فارسی چاپ میشه و از اون به بعد بقیه کاراکترها انگلیسی تایپ میشن
من میخوام کاربر اصلا نتونه تو تکست باکس فارسی تایپ کنه:افسرده:

Salar Ashgi
جمعه 11 تیر 1389, 10:58 صبح
میتونید از کد اسکی استفاده کنید.



bool str_only_num_letter(string str)
{
bool res=true;
int f=0;
foreach(char c in str)
{
f = (int)(c);
if((f>=48 && f<=57) && (f>=65 && f<=90) && (f>=97 && f<=122))
res = res & true;
else
{
res = res&flase;
break;
}
}
return res;
}

shima2006
جمعه 11 تیر 1389, 17:19 عصر
اگر درست متوجه شده باشم این تابع بر حسب فارسی یا انگلیسی بودن STR یه مقدار True یا False برمی گردونه حالا دو تاسوال پیش میاد:افسرده: یکی اینکه من چطور باید تعیین کنم که چیزی که کاربر وارد میکنه همون STR هست ؟ و دیگه اینکه این مقداری که تابع برمی گردونه رو باید چیکارش کنم؟؟؟!!!

Salar Ashgi
جمعه 11 تیر 1389, 19:22 عصر
اگر درست متوجه شده باشم این تابع بر حسب فارسی یا انگلیسی بودن STR یه مقدار True یا False برمی گردونه حالا دو تاسوال پیش میاد:افسرده: یکی اینکه من چطور باید تعیین کنم که چیزی که کاربر وارد میکنه همون STR هست ؟ و دیگه اینکه این مقداری که تابع برمی گردونه رو باید چیکارش کنم؟؟؟!!!

ببینید مساله رو اصلا پیچیده نکنید ، این تابع خروجیش فقط زمانی True خواهد بود که رشته

ورودی Str ، تک تک کاراکترهاش یا حروف انگلیسی باشند و یا ارقام .

shima2006
جمعه 11 تیر 1389, 19:59 عصر
ببینید مساله رو اصلا پیچیده نکنید ، این تابع خروجیش فقط زمانی True خواهد بود که رشته

ورودی Str ، تک تک کاراکترهاش یا حروف انگلیسی باشند و یا ارقام .

بله دوست عزیز این قضیه رو متوجه شدم ولی همونطور که گفتم متاسفانه من نمی دونم چطوری باید موقع پر شدن تکست باکس از این تابع استفاده کنم!!! :افسرده:
ضمنا آیا باید این تابع رو تویه رویداد Change تکست باکس بنویسم؟

shima2006
شنبه 12 تیر 1389, 09:13 صبح
دوستان کسی نمی دونه من چطوری باید از این کدی که salar گفتن باید استفاده کنم؟؟؟؟؟

Salar Ashgi
شنبه 12 تیر 1389, 09:39 صبح
دوستان کسی نمی دونه من چطوری باید از این کدی که salar گفتن باید استفاده کنم؟؟؟؟؟

خیلی ساده در رویداد TextChanged استفاده کنید .

Iran58
شنبه 12 تیر 1389, 09:59 صبح
سلام
این کد در برابر Paste هم محفوظه

private void textBox1_TextChanged(object sender, EventArgs e)
{
for (int i = 0; i < textBox1.Text.Length; i++)
{
int charCode = char.ConvertToUtf32(textBox1.Text, i);
if (!(charCode >= 65 && charCode <= 90) && !(charCode >= 97 && charCode <= 122))
{
textBox1.Text = textBox1.Text.Remove(i--, 1);
textBox1.Select(textBox1.Text.Length, 0);
}
}
}

RIG000
شنبه 12 تیر 1389, 14:09 عصر
http://www.radsoftware.com.au/articl...arnsyntax.aspx (http://www.radsoftware.com.au/articles/regexlearnsyntax.aspx)
http://msdn.microsoft.com/en-us/libr...ons.regex.aspx (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx)