نقل قول نوشته شده توسط mohammad2407 مشاهده تاپیک
سلام دوستان عزیز خسته نباشید

من یک تکس باکس دارم که میخوام دو کارکتر اول حروف بگیره و بعد دیگه حروف نگیره و فقط عدد بگیره

سلام.
در رویداد 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 به دست بیاورید و بر اساس آن عمل کنید، چون ممکن است کاربر بخواهد به عقب برگردد و متن را ویرایش کند.