Parsi Coders
numeric textBox - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: C# Programming (http://parsicoders.com/forumdisplay.php?fid=55)
+--- موضوع: numeric textBox (/showthread.php?tid=2257)



numeric textBox - analyze - 05-11-2012

سلـام، یه تکست باکس دارم که فقط اعداد صحیح می گیره، می خوام اعداد اعشاری هم بگیره

چکار کنم؟!
کد:
protected override void OnKeyPress(KeyPressEventArgs e)

{

e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);

base.OnKeyPress(e);

}






[/align]


RE: numeric textBox - Ghoghnus - 05-11-2012

کد:
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(e.KeyChar >= '0' && e.KeyChar <= '9' ||  e.KeyChar =='.'))
                e.Handled = true;
        }



RE: numeric textBox - analyze - 05-12-2012

ممنون
راه حل خوبی بود، تو کدپروجکت هم گذاشته بودم، کسی جواب درست و حسابی نداد.
فقط مشکلی که الان داره اینه که "." را چند بار می تونه بگیره، در صورتی که در اعداد اعشاری فقط یکبار "." باید باشد


RE: numeric textBox - Ghoghnus - 05-12-2012

کد:
    int t=0;  
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            string s = e.KeyChar.ToString();
            

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

            }

if (e.KeyChar == '.') t++;

        }



RE: numeric textBox - analyze - 05-12-2012

ققنوس جان، ممنون
واقعا گل کاشتی



RE: numeric textBox - analyze - 05-14-2012

سلـام
الان یه مشکلی که پیدا شده اینه که اگه متن درون تکس باکس رو پاک کنیم و دوباره بزنیم، دیگه علامت اعشار "." نمی گیره
به نظر شما راه حل چیه؟
Sad


RE: numeric textBox - Ghoghnus - 05-14-2012

با دستور indexofچک کن اگه "." وجود نداره Tرا دوباره صفر کن


RE: numeric textBox - analyze - 05-14-2012

if ((sender as TextBox).Text.IndexOf('.') < 0) { t = 0; }
به این صورت نوشتم ولی ارور می ده

sender not found
**************

جناب ققنوس

تو ای مدیر ارشد تو ای حضرت والا
ای خسرو خوبان نظری سویِ سوال ما کن
SadSadSad




RE: numeric textBox - Ghoghnus - 05-14-2012

کد:
s=textBox1.Text ;
            if (s.IndexOf('.') <1)
                t = 0;



RE: numeric textBox - analyze - 05-14-2012

این تکس باکس بصورت یک کلاس یا کامپوننت نوشته شده، اسم تکس باکس مشخص نیست
کد:
public class aDecimal : TextBox
{
int t=0;
protected override void OnKeyPress(KeyPressEventArgs e)
{
string s = e.KeyChar.ToString();
if (!(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == '.' && t < 1 || char.IsControl(e.KeyChar)))
{
e.Handled = true;
}
if (e.KeyChar == '.') t++;
//if ((sender as TextBox).Text.IndexOf('.') < 0) { t = 0; }
base.OnKeyPress(e);
}