بار ها این مسئله و مسائل مشابه پرسیده و پاسخ داده شده
کدی که rasoul_ras نوشتن از ورود کاراکتر های @و #و.... جلوگیری نمیکنه
اونو به این شکل تغییر بده
if (char.IsLetter(e.KeyChar) | char.IsControl(e.KeyChar))
e.Handled = false;
else
e.Handled = true;
البته حتی اگه نیخوای که کلید های کنترلی هم دیگه کار نکنند کد زیر را بنویس
البته باید کلید های backspace و delete را هم مدیریت کنی
نمیخوای که کابر فقط وارد کنه؟ بدون پاک کردن ؟
پس اینطوری بنویس
if (char.IsLetter(e.KeyChar) | e.KeyChar == Convert.ToChar(Keys.Back) | e.KeyChar == Convert.ToChar(Keys.Delete))
e.Handled = false;
else
e.Handled = true;
نکته ای که در کد فوق هست اینه که با هیمن روش میتونی تمامی کلید های صفحه کلید را مدیریت کنی