• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 15 رای - 2.67 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: numeric textBox
حالت موضوعی
#1
Question 
سلـام، یه تکست باکس دارم که فقط اعداد صحیح می گیره، می خوام اعداد اعشاری هم بگیره

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

{

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

base.OnKeyPress(e);

}






[/align]
 
پاسخ
#2
کد:
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(e.KeyChar >= '0' && e.KeyChar <= '9' ||  e.KeyChar =='.'))
                e.Handled = true;
        }
 
پاسخ
#3
ممنون
راه حل خوبی بود، تو کدپروجکت هم گذاشته بودم، کسی جواب درست و حسابی نداد.
فقط مشکلی که الان داره اینه که "." را چند بار می تونه بگیره، در صورتی که در اعداد اعشاری فقط یکبار "." باید باشد
 
پاسخ
#4
کد:
    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++;

        }
 
پاسخ
#5
ققنوس جان، ممنون
واقعا گل کاشتی
 
پاسخ
#6
سلـام
الان یه مشکلی که پیدا شده اینه که اگه متن درون تکس باکس رو پاک کنیم و دوباره بزنیم، دیگه علامت اعشار "." نمی گیره
به نظر شما راه حل چیه؟
Sad
 
پاسخ
#7
با دستور indexofچک کن اگه "." وجود نداره Tرا دوباره صفر کن
 
پاسخ
#8
if ((sender as TextBox).Text.IndexOf('.') < 0) { t = 0; }
به این صورت نوشتم ولی ارور می ده

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

جناب ققنوس

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

 
پاسخ
#9
کد:
s=textBox1.Text ;
            if (s.IndexOf('.') <1)
                t = 0;
 
پاسخ
#10
این تکس باکس بصورت یک کلاس یا کامپوننت نوشته شده، اسم تکس باکس مشخص نیست
کد:
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);
}
 
پاسخ
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تغییر متن در on_textchange یک textBox Ghoghnus 0 2,327 10-31-2011، 03:29 PM
آخرین ارسال: Ghoghnus
  وارد کردن فقط عدد در تکست باکس (TextBox) Ghoghnus 0 7,143 10-31-2011، 02:25 PM
آخرین ارسال: Ghoghnus

پرش به انجمن:


Browsing: 1 مهمان