سلام دوستان عزیز خسته نباشید
من یک تکس باکس دارم که میخوام دو کارکتر اول حروف بگیره و بعد دیگه حروف نگیره و فقط عدد بگیره
Printable View
سلام دوستان عزیز خسته نباشید
من یک تکس باکس دارم که میخوام دو کارکتر اول حروف بگیره و بعد دیگه حروف نگیره و فقط عدد بگیره
این که کاری نداره
یه متغیر بگیر برابر 2 کن در هر ورود طول مقدار ورودی رو چک کن ببین برابر 0 شده اگه آره ممنونعیت بده به ورودی حرف ولی نه از متغیر یه واحد کم کن میتونی از while استفاده کنی تو textchang تکس باکست
من متوجه نشدم :لبخند:
خب راهنمایی کنید دیگه ؟
string substr1 = "", substr2 = "";//
textBox1.Text.ToLower();
substr1 = textBox1.Text.Substring(0, 1);
substr2 = textBox1.Text.Substring(1, 1);
if ((substr1 == "0" || substr2 == "0") || (substr1 == "1" || substr2 == "1") || (substr1 == "2" || substr2 == "2") ||
(substr1 == "3" || substr2 == "3") || (substr1 == "4" || substr2 == "4") || (substr1 == "5" || substr2 == "5") ||
(substr1 == "6" || substr2 == "6") || (substr1 == "7" || substr2 == "7") ||
(substr1 == "9" || substr2 == "9") || (substr1 == "8" || substr2 == "8"))
{
textBox1.Text = "";
MessageBox.Show("خطا");
return;
}
string substr = "";
for (int sub = 2; sub < textBox1.Text.Length; sub++)
{
substr = textBox1.Text.Substring(sub, 1);
if (substr != "0" && substr != "1" && substr != "2" && substr != "3" && substr != "4" && substr != "5" && substr != "6" &&
substr != "7" && substr != "8" && substr != "9")
{
textBox1.Text = "";
MessageBox.Show("خطا");
return;
}
}
textBox1.Text = "";
MessageBox.Show("ok");
سلام.
در رویداد KeyPress مربوط به Textbox مورد نظر، برای دو کاراکتر اول در صورت غیر حرفی بودن و برای کاراکتر های بعدی در صورت غیر عددی بودن مقدار E.Handled را برابر true کنید تا کاراکتر فشرده شده تایپ نشود. به این صورت:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (textBox1.Text.Length <= 1)
{
if (!(char.IsLetter(e.KeyChar)))
{
e.Handled=true;
System.Media.SystemSounds.Beep.Play();
}
}
else{
if (!(char.IsDigit(e.KeyChar)))
{
e.Handled=true;
System.Media.SystemSounds.Beep.Play();
}
}
}
البته درست تر این است که محل قرار گیری caret را با استفاده از StartSelection به دست بیاورید و بر اساس آن عمل کنید، چون ممکن است کاربر بخواهد به عقب برگردد و متن را ویرایش کند.
کد شما از هر نظر عالی هست فقط تنها مشکلی که داره این هست که ویرایش نمیشه باید برنامه ببندم دوباره باز کنم :لبخند:
یک سری تغییرات دادم درست شد از همه ممنون
کپی و پیست هم مشکلی نداره:چشمک:
سلام
دوستان چطور میشه با توابع خود سی شارپ (نمیدونم درست گفتم :لبخند:) این ورود اطلاعات رو کنترل کرد من این دستور های زیر رو میزنم اما فقط دستور آخر اجرا میشه چیکار کنم که همه این کنترل ها انجام شه:لبخندساده:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = char.IsDigit(e.KeyChar);
e.Handled = char.IsPunctuation(e.KeyChar);
e.Handled = char.IsSymbol(e.KeyChar);
}