PDA

View Full Version : تشخیص کاراکتر غیر مجاز



farzane_fn
دوشنبه 11 آبان 1388, 22:02 عصر
دوستای خوبم سلام.من یه برنامه نوشتم که توش یه ادیت هست که فقط باید عدد دریافت کنه. چه طوری می تونم تشخیص بدم که رشته وارد شده یک رشته عددی است و در صورت وارد شدن کاراکتر غیر مجاز پیام خطای مناسب صادر کنم؟ ممنون می شم اگه راهنمایی کنین..

mohsen_f_b
دوشنبه 11 آبان 1388, 22:11 عصر
سلام

برای این کار راه های خیلی زیادی هستش فعلا یکی رو می زارم



private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{


if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}

if (e.KeyChar < '0' || e.KeyChar > '9')
e.Handled = true;
}


موفق باشید.

nasser_ray
دوشنبه 11 آبان 1388, 22:17 عصر
سلام
بهتر بود قبل از پرسیدن این سوال یه جستجو می کردید. این طوری سریعتر هم به جواب می رسیدید

می تونید جواب سوالتون رو ایجا پیدا کنید
http://barnamenevis.org/forum/showthread.php?t=187451

farzane_fn
دوشنبه 11 آبان 1388, 22:47 عصر
سلام
بهتر بود قبل از پرسیدن این سوال یه جستجو می کردید. این طوری سریعتر هم به جواب می رسیدید

می تونید جواب سوالتون رو ایجا پیدا کنید
http://barnamenevis.org/forum/showthread.php?t=187451
با تشکر از شما.راستش رو بخواین نمی دونستم چی باید سرچ کنم!

farzane_fn
دوشنبه 11 آبان 1388, 23:20 عصر
سلام

برای این کار راه های خیلی زیادی هستش فعلا یکی رو می زارم



private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{


if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}

if (e.KeyChar < '0' || e.KeyChar > '9')
e.Handled = true;
}


موفق باشید.
از راهنمایی شما واقعا متشکرم.فقط سوالی که دارم اینه که برای اعداد اعشاری چی کار باید کرد؟؟

farzane_fn
دوشنبه 11 آبان 1388, 23:30 عصر
دوستان خوبم.آیا راهی هست که عدد وارد بشه ولی بعد از فشرده شدن کلید تشخیص داده بشه که عدد وارد شده صحیح هست یا نه. و اگر عدد وارد شده اشتباه بود پیام "لطفا یک عدد معتبر وارد کنید" صادر بشه.یعنی امکان اشتباه وارد شدن عدد باشه و بعد از فشرده شدن کلید(یعنی کد مربوطه در ایونت کلیک باتون نوشته شود نه در ایونت کی پرس تکست) مشخص بشه که عدد درست است یا خیر؟

esmartiz_red
دوشنبه 11 آبان 1388, 23:57 عصر
این کد برای اعتبار سنجی اعداد اعشاری


private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ( !( char.IsDigit( e.KeyChar) || char.IsControl( e.KeyChar ) ||(e.KeyChar== (char )46)) )
{
e.Handled = true;
}
}
برای سوال دوم هم می تونی کد مورد نظرتو تو رویداد KeyDown کادر متنی یا همون textbox خودت قرار بده بعد اگر عدد اشتباه بود با استفاده از دستور زیر پیغامتو نمایش بده

MessageBox.Show("متن پیغام")اما یه پیشنهاد دوست من این روند شما به نظر من اشتباهه چون همه سوال های شما در حد ابتدایی هست و اینطوری به نتیجه مطلوب نمی رسید شاید الان مشگلتون حل بشه اما در آینده به مشگل بر می خورید شما اگر یه کتاب آموزش C#‎ یخونید به راحتی می تونید کدهایی از این قبیل رو بنویسید
البته امیدوارم ناراحت نشید و منظور این نبود سوال نکنید شما هر گونه سوالی داشته باشید بچه های اینجا همه در خدمت هستن از جمله خودم چون خودمم خیلی چیزا اینجا یاد گرفتم و دارم یاد می گیرم
حرف من فقط یه پیشنهاده:لبخندساده:

nasser_ray
سه شنبه 12 آبان 1388, 00:01 صبح
2باره سلام


public bool isNumeric(string str){
bool resPoint = false;
for(int i=0;i<str.Length;i++)
{
if ((str[i] == '-' || str[i] == '+') && i == 0)
continue;
if (str[i] == '.')
if (resPoint == false)
{
resPoint = true;
continue;
}
else
return false;
if (str[i] < '0' || str[i] > '9')
return false;
}
return true;
}

روش استفاده


MessageBox.Show( isNumeric("-123.456").ToString()); // true;

مثال 2


if (!isNumeric("-123.45.6")) // false, because exist 2 float point in The String
MessageBox.Show("IS Not A Numerical Value");
else
MessageBox.Show("A Numerical Value");

farzane_fn
چهارشنبه 13 آبان 1388, 16:58 عصر
دوست من این روند شما به نظر من اشتباهه چون همه سوال های شما در حد ابتدایی هست و اینطوری به نتیجه مطلوب نمی رسید شاید الان مشگلتون حل بشه اما در آینده به مشگل بر می خورید شما اگر یه کتاب آموزش C#‎‎ یخونید به راحتی می تونید کدهایی از این قبیل رو بنویسید
دوست عزیزم سلام. دوست خوبم من رشتم کامپیوتر است و تا حد زیادی با زبان دلفی آشنایی دارم.حالا هم اومدم سی شارپ رو یاد بگیرم.از اینکه دوستان خوبی چون شما دارم هم افتخار می کنم.من سه تا ebook حجیم در مورد آموزش سی شارپ دارم که حوصله نمی کنم بخونمشون.و به همین ترتیب سوال و جواب توی سایت برام جذاب تر از خوندن کتاب هست. به هر حال از اینکه راهنمایی کردین خوشحالم.دوست خوبم به خدای بزرگ می سپارمتون..