2016-04-09 7 views
0

Я не могу заставить свою программу принимать данные в текстовом поле и указывать, является ли она пустой, содержит целое или десятичное число. Если он пуст, я хочу, чтобы он присвоил переменной PropAmt 0,00. Если у него есть целое число, я хочу, чтобы он назначил PropAmt десятичной. И если это десятичное число, оставьте PropAmt.Определение пустого или целочисленного или десятичного числа в текстовом поле

Это то, что я до сих пор:

Dim PropAMT = cdec(txtPropAMT.Text) 
If txtPropAMT.Text = "" Then 
    txtPropAMT.Text = 0.0 
Else txtPropAMT.Text = CInt(txtPropAMT.Text) Then 
    PropAMT = PropAMT & ".00" 
ElseIf txtPropAMT.Text = CDec(txtPropAMT.Text) Then 
    PropAMT = PropAMT 
End If 

ответ

0

Джон,

вот что вы искали Если txtBox.Text = String.Empty Тогда

ElseIf (txtBox.Text Is GetType(Integer)) Then 

    ElseIf (txtBox.Text Is GetType(Decimal)) Then 

    End If 
+0

Все работает для целой части, за исключением: Private Sub Button1_Click (отправитель Как System.Object, е Как System.EventArgs) Ручки Button1.Click Dim PropAMT = txtPropAMT.Text Если txtPropAMT.Text = "" Тогда txtPropAMT. Text = "0.0" ElseIf (txtPropAMT.Text Is GetType (Integer)) Затем txtPropAMT.Text = PropAMT & ".00" 'Если введено «123», текстовое поле меняется с «123» на «123.00» ElseIf (txtPropAMT.Text Is GetType (десятичный)) Затем txtPropAMT.Text = txtPropAMT.Text End If End Sub –

+0

В чем проблема, с которой вы сталкиваетесь с целым числом – 5413

+0

John, can вы пытаетесь использовать этот URL-адрес http://stackoverflow.com/questions/16294589/how-to-know-the-data-type-of-value-entered-by-user-at-runtime-in-textbox – 5413

0

сортире это

Dim intvalue As Integer 
    Dim decValue As Decimal 
    If txtBox.Text = String.Empty Then 
     txtBox.Text = "0.0" 
    ElseIf Integer.TryParse(txtBox.Text, intvalue) Then 
     txtBox.Text += ".00" 

    ElseIf Integer.TryParse(txtBox.Text, decValue) Then 

    End If 

Дайте мне знать, если у вас все еще есть проблемы.