PDA

View Full Version : وارد کردن فقط عدد در , textbox



mahdi.a.v
جمعه 19 آبان 1391, 10: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, 11: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, 11: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, 15: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, 16:49 عصر
ممنون
ولی اگه میشه من میخوام کاربر بتونه " . " رو هم وارد کنه .

JaVa
جمعه 19 آبان 1391, 17: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, 17:19 عصر
بازم ممنون
اما این کد نمیدونم چرا نمیشه نوشترو پاک کنی !!!

JaVa
جمعه 19 آبان 1391, 17: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, 17: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, 21:16 عصر
یکدونه MaskedTextEdit بزار و از خر شیطون بیا پایین !

rezaprogrammer
شنبه 20 آبان 1391, 00: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