PDA

View Full Version : سوال: نحوه مديريت صحيح واردن شدن عدد اعشاري درون TextBox



mgh64120
یک شنبه 01 آذر 1388, 23:49 عصر
سلام
من يه TextBox دارم كه فقط عدد توش وارد ميكنم.
حالا ميخوام وقتي كه در حال وارد نمودن يك عدد اعشاري هستم در صورتي يك بار مميز گذاشتم، دوباره اجازه وارد نمودن مميز رو نده!
قابل ذكره كه چون طول عدد مشخص نيست(قبل و بعد از مميز اعشاري) نمي تونم از كنترل MaskedTextbox استفاده كنم.
نمي دونم براي حل اين سؤال ميشه از تابع Instr كمك گرفت يا نه؟ ولي كاربرد اين تابع رو درست بلد نيستم. اگه ممكنه در مورد اين تابع هم منو راهنمايي كنيد.:متفکر::لبخندساده:

Mani_rf
دوشنبه 02 آذر 1388, 00:37 صبح
این کد ها را درون KeyPress تکس باکس مورد نظرت وارد کن تا هم از ورود حروف جلوگیری کنید و هم اعداد اعشاری را کنترل نماید.


If Not (((((Asc(e.KeyChar) >= 48) And (Asc(e.KeyChar) <= 57))) _
Or (Asc(e.KeyChar) = Keys.Back) Or (Asc(e.KeyChar) = Asc(".")))) Then
e.KeyChar = String.Empty

Beep()

EndIf


If (Asc(e.KeyChar) = Asc(".")) And InStr(TextBox.Text, ".", CompareMethod.Binary) > 0 Then
e.KeyChar = String.Empty

Beep()
EndIf
'
If (Asc(e.KeyChar) = Asc(".")) And TextBox.Text = String.Empty Then TextBox.Text = "0" : TextBox.SelectionStart = 1

به جای TextBox ها نام TextBox مورد نظر را قرار بده .

DoDoklak
دوشنبه 02 آذر 1388, 10:00 صبح
با تشکر از دوست خوبمون

من هم از این روش استفاده میکنم



Private Sub TxtPBCash_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPBCash.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
e.Handled = True
End If
If e.KeyChar = (vbBack) Then
e.Handled = False
End If
If e.KeyChar = (vbTab) Then
e.Handled = False
End If
If e.KeyChar = "." Then
If InStr(TxtPBCash.Text, ".") = False Then
e.Handled = False
End If
End If
End Sub