2015-12-22 2 views
1

Как сделать txtamount.text принимать только десятичные значения, он должен принимать только один . не более одного.TextBox.Text принимает только десятичные входы

Моя следующая моя попытка, но принять более .

Private Sub txtamount_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtamount.KeyPress 
     If Asc(e.KeyChar) <> 8 Then 
      If (Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57) And Asc(e.KeyChar) <> 46 Then 
       e.Handled = True 
      End If 
     End If 
    End Sub 
+0

Используйте 'NumericUpDown' вместо' TextBox' –

ответ

0

Вы можете использовать

 Dim asccode As Integer = Asc(e.KeyChar) 
     If asccode <> 8 Then 
      If asccode = 46 And txtPackageAmount.Text.Contains(".") Then 
       e.Handled = True 
      End If 
      If (asccode < 48 Or asccode > 57) And asccode <> 46 Then 
       e.Handled = True 
      End If 
     End If 
0

Я рекомендую использовать NumericUpDown вместо этого. У этого есть свойство, называемое DecimalPlaces, где вы можете установить предел количества десятичных знаков, которые пользователь может ввести. Тогда вам не понадобится код для проверки только 1 "." .

Смежные вопросы