فرمی داشتم که در آن تعدادی text Box برای ورود اطلاعات نیاز بود. این text Box ها اختصاصا باید عدد می گرفتند و یه جورایی کاربر نباد حروف الفبا وارد می کرد. برای اینکه از خطاهایی که در صورت وارد کردن کاراکتر الفبا در این text Box ها هنگام محاسبات جلوگیری کنم باید مانع ورود حروف می شدم.
یعنی اگر کاربر حتی کلید های حروف را می فشرد ، هیچ چیزی در text Box ثبت نشود.
بعد از جستجو (Google) در منابع موجود به راه حل زیر رسیدم:
در Text Box مورد نظر event (رویداد) PreviewTextInput را اضافه می کنیم.
در CS فرم (Window در WPF) ابتدا NameSpace : System.Text.RegularExpression اضافه می کنیم.
کد زیر را در رویداد TextBox می نویسیم.
;("[Regex Regex = new Regex("[0-9
;(e.handled = Regex.IsMatched(e.text
# محدوده 0 تا 9 که مشخص کردم ، می تواند با هر محدوده دیگری و یا هر شرایطی که برای textBox خود می خواهید قائل شوید جایگزین شود. مثلا اگر می خواهید همه کاراکترها به جز این اعداد را بپذیرد می توانید به صورت ^9-0^ بنویسید. ^ : یعنی به جز!
#handled کلاسی از NameSpace:System.Windows.Forms است. این کلاس مقداردهی مربوط به روریداد KeyPress (فشردن صفحه کلید) را انجام می دهد.