PDA

View Full Version : درخواست تشریح کد



mrstar
شنبه 27 شهریور 1389, 21:55 عصر
با سلام

در یه سایتی کدهای زیر رو دیدم که اگه داخل رویداد keypress یه textbox نوشته بشه اون textbox فقط اعداد رو قبول میکنه

اگه ممکنه اساتید لطف کنن یه توضیحی مفصل در مورد اجزا و نحوه عملکرد اون بدن ممنون میشم !!



If (Char.IsDigit(e.KeyChar) Or e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = False
Else
e.Handled = True
End If

salehbagheri
شنبه 27 شهریور 1389, 22:28 عصر
اگه کلیدهای فشرده شده عدد یا دکمه Back باشه عملیات ورود داده به TextBox انجام نمیشه در غیر اینصورت انجام میشه...

mrstar
شنبه 27 شهریور 1389, 22:45 عصر
ممنون
منظورم اجزای داخل کد بود مثل e.Handled

salehbagheri
شنبه 27 شهریور 1389, 23:05 عصر
e در واقع همون event argument مربوط به رویداد KeyPress هست. اگه e رو هندل کنید در واقع اجازه دادید که عملیات KeyPress انجام بشه! یعنی اگه دکمه فشرده شده هرچیزی غیر از عدد و دکمه back بود، else اجرا میشه، یعنی e هندل میشه و کلید فشرده شده وارد Textbox میشه.

همین.

Shahram_Shobeiri
یک شنبه 28 شهریور 1389, 08:37 صبح
وقتی رخدادی پیش میاد، مثلاً کلیدی فشرده میشه. روال مدیریت کننده این رخداد(اگر مشخص شده باشده) اجرا میشه. یکی از پارامتر های این روال e یا همون event argument مربوط به اون رخداد است. اگر این آرگومان را هندل کنید(e.handled = true)، در واقع اجازه دادید اون رخداد پیش بیاد و اگر نه(e.handled =false) انگار که اصلاً رخدادی پیش نیومده!
در این مثال اگه کاربر کلید بک اسپیس یا کلید عددی رو فشار بده، هندل فالس میشه، انگار که کاربر اصلاً این کلید ها رو فشار نداده!
این در واقع همون حرف دوستمون در پست قبلی بود. فقط یکم بیشتر توضیح دادم. امیدوارم فهمیده باشی.

mrstar
یک شنبه 28 شهریور 1389, 23:07 عصر
ممنونم این خط رو بیشتر توضیح بدین

If (Char.IsDigit(e.KeyChar) Or e.KeyChar = Convert.ToChar(Keys.Back))

char و isdigit , ... از کجا اومدن و چه معنیی میدن ؟

Shahram_Shobeiri
دوشنبه 29 شهریور 1389, 08:45 صبح
char یه کلاس کلی برای کار با کاراکترها است و isdigit هم متدی از این کلاسه که یک کاراکتر رو به عنوان ورودی دریافت می کنه و بررسی میکنه که آیا این کاراکتر رقم(0 تا 9) است یا خیر و بسته به همین بله یا خیر یه مقدار منطقی برمیگردونه