PDA

View Full Version : backspace ، handle نمی شود



میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 17:26 عصر
سلام . هنگامی که توی تکس باکس عددی رو وارد میکنم وقتی میخوام پاکش کنم بکسپیس هندل نمیشود . چیکار میتونم بکنم . این کدم :


if (!(char.IsDigit(e.KeyChar)) || (char.IsControl(e.KeyChar)))
e.Handled = true;

Rejnev
چهارشنبه 10 شهریور 1389, 17:32 عصر
if (char.IsDigit(e.KeyChar) == true)
{
}
else if (e.KeyChar == '\b')
{
}
else if (e.KeyChar == '.' && txt.Text.IndexOf('.')<0)
{
}
else
{
e.Handled = true;
}

میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 17:38 عصر
if (char.IsDigit(e.KeyChar) == true)
{
}
else if (e.KeyChar == '\b')
{
}
else if (e.KeyChar == '.' && txt.Text.IndexOf('.')<0)
{
}
else
{
e.Handled = true;
}


. از کد شما الگو گرفتم و



!(e.KeyChar == '\b')

رو اضافه کردم. کار نمی نماید.

cheshm6k
چهارشنبه 10 شهریور 1389, 18:03 عصر
. از کد شما الگو گرفتم و



!(e.KeyChar == '\b')

رو اضافه کردم. کار نمی نماید.

اینو امتحان کن

if ((!char.IsDigit(e.KeyChar)) && (e.KeyChar != (char)Keys.Back) )
{
e.Handled = true;
}

واسه اینه که شما OR میکنید نه And و وقتی backspace میزنی چون عدد نیست دستورات اجرا میشن

میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 18:21 عصر
واسه اینه که شما OR میکنید نه And و وقتی backspace میزنی چون عدد نیست دستورات اجرا میشن

استفاده از OR در صورتی که از عملگر نقیض استفاده کنیم همون عمل رو انجام میده هیچ فرقی نداره .
این کد کار کرد .



if (!(char.IsDigit(e.KeyChar)) && !(char.IsControl(e.KeyChar))&& !(e.KeyChar!=(char)Keys.Back))
e.Handled = true;

cheshm6k
چهارشنبه 10 شهریور 1389, 18:38 عصر
سلام . هنگامی که توی تکس باکس عددی رو وارد میکنم وقتی میخوام پاکش کنم بکسپیس هندل نمیشود . چیکار میتونم بکنم . این کدم :


if (!(char.IsDigit(e.KeyChar)) || (char.IsControl(e.KeyChar)))
e.Handled = true;


دوست من حرف شما زمانی درسته که کل عبارات رو نقیض کنی . وقتی عبارات رو OR میکنیم فقط کافیه یکی از اونا درست باشه تا دستورات if اجرا بشه

#aliyari_C
چهارشنبه 10 شهریور 1389, 18:51 عصر
سلام


int i = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out i) && !(e.KeyChar == (char)Keys.Back);

موفق وتندرست باشی
__________________________________________________ _________________________
چون به دریاه می توانی راه یافت.................سوی یک قطره چرا باید شتاف

Rejnev
چهارشنبه 10 شهریور 1389, 19:18 عصر
int i = 0;
توابعی که پارامتر با out دارن رو میشه بدون مقدار دهی اولیه متغیر، صدا زد.(فرقش با ref همینه)

میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 20:32 عصر
توابعی که پارامتر با out دارن رو میشه بدون مقدار دهی اولیه متغیر، صدا زد.(فرقش با ref همینه)


به 22 بهمن چه ربطی داشت ؟ آقا به خدا مشکلم حل شده از دوستمون هم تشکر کردم دیگه زحمت نکشید .

Rejnev
چهارشنبه 10 شهریور 1389, 20:51 عصر
به 22 بهمن چه ربطی داشت ؟ آقا به خدا مشکلم حل شده از دوستمون هم تشکر کردم دیگه زحمت نکشید .
این رو برای پست قبلی نوشتم. شما هم اگه مشکلت حل شده، ضمن شکر خدا، دیگه نیازی نیست به این تاپیک سر بزنی.