سلام دوستان
برای اینکه کاربر فقط حروف انگلیسی و اعداد رو بتونه در یک تکست باکس وارد کنه باید چیکار کرد؟
Printable View
سلام دوستان
برای اینکه کاربر فقط حروف انگلیسی و اعداد رو بتونه در یک تکست باکس وارد کنه باید چیکار کرد؟
با سلام
البته باید paste کردن بازم این مشکل وجود داره که حروف فارسی هم نوشته شود
من این کد رو در اون دو تا رویدادی که گفتید نوشتم ولی موقع اجرا وقتی کاربر Alt+Shift رو میگیره اولین کاراکتر فارسی چاپ میشه و از اون به بعد بقیه کاراکترها انگلیسی تایپ میشننقل قول:
تو رویداد اینتر و key downتکست باکست کد زیر بذار
کد:
System.Globalization.CultureInfo english = new System.Globalization.CultureInfo("en");InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(english );
من میخوام کاربر اصلا نتونه تو تکست باکس فارسی تایپ کنه:افسرده:
میتونید از کد اسکی استفاده کنید.
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;
}
اگر درست متوجه شده باشم این تابع بر حسب فارسی یا انگلیسی بودن STR یه مقدار True یا False برمی گردونه حالا دو تاسوال پیش میاد:افسرده: یکی اینکه من چطور باید تعیین کنم که چیزی که کاربر وارد میکنه همون STR هست ؟ و دیگه اینکه این مقداری که تابع برمی گردونه رو باید چیکارش کنم؟؟؟!!!
دوستان کسی نمی دونه من چطوری باید از این کدی که salar گفتن باید استفاده کنم؟؟؟؟؟
سلام
این کد در برابر 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);
}
}
}