ش | ی | د | س | چ | پ | ج |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
روش پیشنهادی من (جواد زحمتکش) روش پنجم می باشد.
با سلام خدمت شما دوستان عزیز
چند روش برای فیلتر کردن TextBox در سی شارپ مینویسم، از هر کدام دوست داشتید استفاده کنید.
میخوایم کاری کنیم که Textbox فقط عدد قبول کنه یا کاری کنیم که فقط حروف قبول کنه
توجه داشته باشید کلیه این کدها در قسمت رخداد KeyPress استفاده شده:
---------------------------------------------------------------------------------------------------------
روش اول: (فقط حروف قبول کند)
if(char.IsLetter(e.KeyChar)==false && char.IsControl(e.KeyChar)==false)
{
errorProvider1.SetError(textBox1, "فقط حروف وارد کنید");
e.Handled = true;
}
else
{
errorProvider1.SetError(textBox1, "");
}
توضیحات: برای زیبای برنامه که، کاربر را متوجه خطای تایپی آن بکند از Common Controls به نام ErrorProvider استفاده شده است.برای اینکه شما هم از این کد استفاده کنید می بایستی یک ErrorProvider در فرم قرار دهید.نکته در این روش اگر خواسته باشیم TextBox مورد نظر عدد دریافت کند به بجای پارمتر "IsLetter" از پارمتر "IsNumber" استفاده میکنیم.
در این دستور پارامتر IsControl برای پاک کردن کاراکترهای تایپ شده اشتباه در TextBox مورد نظر استفاده شده و اگر آنر را استفاده نکنیم.نمی توان کاراکترهای تایپ شده را پاک کرد.
---------------------------------------------------------------------------------------------------------
روش دوم: (فقط حروف قبول کند)
if ((!(e.KeyChar <= 48)) && (!(e.KeyChar >= 57)))
e.Handled = true;
else
e.Handled = false;
}
توضیحات: در این روش از فیلتر کردن کد اسکی کاراترهای غیر حروف استفاده شده است.
---------------------------------------------------------------------------------------------------------
روش سوم: (فقط عدد دریافت کند و با پیغام گزارش دهد)
if(Convert.ToInt16(e.KeyChar)<48 || Convert.ToInt16(e.KeyChar)>57)
{
e.KeyChar = Convert.ToChar(Keys.None);
MessageBox.Show("لطفا فقط عدد وارد کنید");
}
توضیحات: در این روش از فیلتر کردن کد اسکی حروف استفاده شده و زمانی که کاربر کاراکتر غیر از عدد تایپ کند با مسیج باکسی به آن خطا میدهد.
---------------------------------------------------------------------------------------------------------
روش چهارم: (فقط عدد دریافت کند)
int isNumber = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out isNumber);
{توضیحات: در این روش خروجی را فقط عدد عدد نظر میگیریم.
---------------------------------------------------------------------------------------------------------
روش پنجم: (به سادگی میتوان مشخص کرد حروف فارسی یا انگلیسی و یا عدد بگیرد) روش پیش نهادی من(جواد زحمتکش) این مورد میباشد.
در این روش از یک کامپنت جادوی TextBox با نام TxtProNetV3 استفاده میکنیم.
برای استفاده از این روش ابتدا این کامپنت رو دریافت کرده(کلیک کنید) سپس این کامپنت را از مسیر Tools >> Choose Toolbox Items سپس تب NET Framework Components گزینه Browse کامپنت را اضافه کرده و حالا از پنجره Toolbox کامپنت را روی فرم خود قرار داده و در نهایت در از قسمت Properties و با گزینه های زیر تنظیمات دلخواه را انجام دهید و TextBox خود را در هر کجا که خواسته اید محدود کنید.
Name |
True |
False |
TypeAllChar |
هیچ کاراکتری دریافت نکند |
هر کاراکتری دریافت کند |
TypeDateShamsi |
تاریخ شمسی بگیرد به صورت زیبا |
تاریخ شمسی نگیرد |
TypeEnglishOnly |
فقط حروف انگلیسی بگیرد |
هرچی دوست داری |
TypeFarsiOnly |
فقط حروف فارسی بگیرد |
هر چی تو حالتونه |
TypeNumricOnly |
فقط عدد بگیرد |
دیگه خسته شدم،خودتون برین نگاه کنید |
مابقی تنظیماتش هم مفید و قشنگه،حتما نگاه کنید
قابلیتها:
EnterToTab = کلید اینتر مانند کلید تب عمل کند
EscToClose = کلید ESC برای بست فرم اعمال شود
GotBackColor = رنگ زمینه تکست باکس در هنگام ورود به تکست تغییر می کند
SelectText = هنگام ورود فوکوس به تکست باکس متن را انتخاب کند
OtherChar = تعریف تعدادی کاراکتر ویژه که تکست فقط آنها را قبول کند و غیر از آن را قبول نکند
TypeAll = قبول همه نوع کاراکترها
TypeDate = قبول فقط تاریخ شمسی
TypeFa = قبول فقط حروف فارسی .....
موفق پیروز باشید.
درضمن:
((شرکت سازنده: دلتا سیستم توس
با سلام آقا جواد دستتون درد نکنه با این کامپوننت خیلی به ما کمک کرد
ممنون
سلام
خواهش میکنم، موفق باشید
یاحق
سلام دستتون درد نکنه ..من خیلی ازش استفاده بردم.
ولیکن یه سوال حالا چطور محدود کنیم فقط فارسی قبول کنه؟
برای استفاده از این روش ابتدا این کامپنت رو دریافت کرده(کلیک کنید) سپس این کامپنت را از مسیر Tools >> Choose Toolbox Items سپس تب NET Framework Components گزینه Browse کامپنت را اضافه کرده و حالا از پنجره Toolbox کامپنت را روی فرم خود قرار داده و در نهایت در از قسمت Properties و با گزینه های زیر تنظیمات دلخواه را انجام دهید و TextBox خود را در هر کجا که خواسته اید محدود کنید.
یعنی دمت گرم با این کامپنتی که گذاشتی.مرسی
بسیار عالی. واقعا ممنون
خواهش میکنم
موفق باشید
بسیار عالی
یک دنیا ممنون
دمت گرم حاج جواد
فدات، بازم به ما سر بزن
سلام.خیلی اتفاقی تکست باکس txtpronet رو که چند سال پیش نوشته بودم و تو سایت برنامه نویس آپلود کرده بودم رو توی سایتتون دیدم.
با توجه به اینکه این تکست باکس رو من نوشته بودم لازم دونستم بعضی امکاناتش رو مثل تبدیل عدد به حروف ، نمایش پیام خطاها و ... و نیز جسارتا آموزش اشتباهی که دادید رو یادآور بشم.
میتونید آموزش کامل کار با اونو در این لینک ببینید:
https://barnamenevis.org/showthread.php?132894-%DB%8C%D9%87-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D8%A7-%DA%A9%D9%84%DB%8C-%D8%A7%D9%85%DA%A9%D8%A7%D9%86%D8%A7%D8%AA(%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%86%DA%A9%D9%86%DB%8C-%D8%A7%D8%B2-%D8%AC%DB%8C%D8%A8%D8%AA-%D8%B1%D9%81%D8%AA%D9%87)
اینهم آدرس سایت شرکتمون که توش تکست باکس رو گذاشتم:
http://persiancode.net/download/
موفق باشید.
سلام، ممنون از شما چشم استفاده و اصلاح میشه