View Full Version : وارد کردن فقط عدد در  , textbox
  
mahdi.a.v
جمعه 19 آبان 1391, 11:32 صبح
سلام
پست های قبلی رو نگاه کردم و همه ی کد هایی که گفته بودن در رویداد key press تکست باکسم نوشتم اماااا نمیدونم چرا نشد . فقط یه textbox ساختمو اینو تو رویداد key press نوشتم :
[VB]
if (!char.IsControl(e.KeyChar)&& !char.IsDigit(e.KeyChar)  && e.KeyChar != '.')
            {
                e.Handled = true;
            }
[VB]
        
و کد های دیگه هم امتحان کردم اما نشد !!! 
باید چی کار کنم؟؟؟!!!
xxnagin
جمعه 19 آبان 1391, 12:29 عصر
سلام
کد شما کاملا درست کار میکنه ولی اگه مشکل داری 
از این کد استفاده کن
اگه جای     e.Handled = True  و     e.Handled = False  رو عوض کنی   عدد  به رشته  تغییر می کنه یعنی فقط رشته میگیره
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = True
        Else
            e.Handled = False
        End If
    End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
      If e.KeyChar Like "[A-z]" Or _
         e.KeyChar = Chr(&H8) Then
            e.Handled = True
        Else
            e.Handled = False
        End If
  End Sub
Hossis
جمعه 19 آبان 1391, 12:46 عصر
این رو هم من استفاده می کنم 
Private Sub textbox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBox.KeyPress
        Dim txt As String = "0123456789" & Chr(Keys.Back)
        If txt.Contains(e.KeyChar)  Then e.Handled = True
    End Sub
JaVa
جمعه 19 آبان 1391, 16:36 عصر
سئوال : تکس باکسی که فقط عدد دریفات کند:
کد 1:
       If Char.IsNumber(e.KeyChar) = False Then
            e.Handled = True
        End If
کد 2:
e.Handled = Not (IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 8)
سئوال: چگونه می توان فقط عدد را همراه با کاراکتر '-' در تکس باکس وارد کرد.
e.Handled = Not (IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 45)
mahdi.a.v
جمعه 19 آبان 1391, 17:49 عصر
ممنون
ولی اگه میشه من میخوام کاربر بتونه " . " رو هم وارد کنه .
JaVa
جمعه 19 آبان 1391, 18:08 عصر
سلام و...
اگه می خوای که "." رو هم وارد کنی فقط کافی که بجای کد اسکی "-" که 8 هست بجاش بنویسی 46 در کل اینوری میشه :
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        e.Handled = Not (IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 46)
    End Sub
موفق باشید.*
mahdi.a.v
جمعه 19 آبان 1391, 18:19 عصر
بازم ممنون
اما این کد نمیدونم چرا نمیشه نوشترو پاک کنی !!!
JaVa
جمعه 19 آبان 1391, 18:32 عصر
دیگه درست شد.
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        e.Handled = Not (IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = Keys.Back)
    End Sub
تشکر یادت نره.
mahdi.a.v
جمعه 19 آبان 1391, 18:42 عصر
دیگه درست شد.
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        e.Handled = Not (IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = Keys.Back)
    End Sub
تشکر یادت نره.
داداش دستت درد نکنه آخه خیلی عجله داشتم . ممنون
hakim22
جمعه 19 آبان 1391, 22:16 عصر
یکدونه MaskedTextEdit بزار و از خر شیطون بیا پایین !
rezaprogrammer
شنبه 20 آبان 1391, 01:07 صبح
Private Sub TxtBalance_KeyPress(ByVal sender As Object,
                                    ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Char.IsNumber(e.KeyChar) = False Then
            e.Handled = True
        End If
        If e.KeyChar = Microsoft.VisualBasic.vbBack Then
            e.Handled = False
        End If
        If e.KeyChar = Microsoft.VisualBasic.vbTab Then
            e.Handled = False
        End If
    End Sub
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.