PDA

View Full Version : سوال: مشكل در مقادير داخل TextBox ؟؟؟؟؟



ایمان مدائنی
دوشنبه 10 اسفند 1388, 19:49 عصر
من با استفاده از دستور زير كاري كردم كه textbox فقط مقادير عدد قبول كنه !


privatevoid txtbox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsLetter(e.KeyChar))
e.Handled = true;
}

ولي باز هم كاربر ميتونه از كاراكترهاي /-+*. استفاده كنه و اين باعث هنگ كردن برنامه ميشه !
چكار كنم ا كاربر نتونه از اين كاراكترها در textbox استفاده كنه ؟؟؟؟
مي خوام فقط از اعداد استفاده بتونه بكنه (1234567890)

accpascal
دوشنبه 10 اسفند 1388, 19:56 عصر
می توانی از این تابع استفاده کنی

function trueint(key:char):boolean;
begin
if not (Key in ['0'..'9',#8,#9])and(key<>#27)and(key<>#13) then result:=false
else result:=true;
end;

ایمان مدائنی
دوشنبه 10 اسفند 1388, 20:03 عصر
راه بهتري بلد نيستي ؟؟:گریه:

slashslash2009
دوشنبه 10 اسفند 1388, 20:12 عصر
از این هم میتونید استفاده کنید در رویداد keypress

if (!(e.KeyChar >= '0' && e.KeyChar <= '9'))
e.Handled = true;

ایمان مدائنی
دوشنبه 10 اسفند 1388, 20:59 عصر
از این هم میتونید استفاده کنید در رویداد keypress

if (!(e.KeyChar >= '0' && e.KeyChar <= '9'))
e.Handled = true;
عزيز ممنون !
كدتون خيلي عالي بود !
ولي مشكلي كه هست حالا كليد Backspace كار نمي كنه

slashslash2009
دوشنبه 10 اسفند 1388, 22:39 عصر
ازین کد استفاده کن در رویداد keypress هم کلید backspace و هم delete رو میگیره

if (e.KeyChar == 8 || e.KeyChar == 46)//backspace&.
{ return; }

if (!(e.KeyChar >= '0' && e.KeyChar <= '9'))
e.Handled = true;

Himalaya
سه شنبه 11 اسفند 1388, 00:14 صبح
if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 8)
{
return;
}
else
e.Handled = true;

Salar Ashgi
سه شنبه 11 اسفند 1388, 09:23 صبح
از متود زیر نیز در رویداد Text_Changed میتونید استفاده کنید :



bool str_is_digit(string str){
bool res = true;
foreach(char c in str)
{
if(!char.Isdigit(c))
{
res = false;
break;
}
}
return res;
}

vahid301
چهارشنبه 19 اسفند 1388, 14:42 عصر
if(chare.isnumber(e.keychar)||e.keychar==8)
e.handel=false;
else
e.handel=true;
اينو امتحان كرديد؟

xcomlock
چهارشنبه 19 اسفند 1388, 18:33 عصر
پاسخ درستش اینه
این کد رو تو رویداد KeyPress بزارین


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((!char.IsNumber(e.KeyChar)) && (!char.IsControl(e.KeyChar)))
{
e.Handled = true;
}
}

peymanjon
چهارشنبه 19 اسفند 1388, 19:14 عصر
من این کد را پیشنهاد میکنم:
این کد داخل textbox



if (textBox1.Text != "" && IsNum(textBox1.Text))

و این هم تابع Isnum




private bool IsNum(string str)
{
for (int i = 0; i < str.Length; i++)
{
if (!char.IsDigit(str[i]))
return false;
}

return true;
}