2013-03-19 2 views
0
Dim labor, material, partstotal, labortotal, subtotal, tax, total As Decimal 
    material = Decimal.Parse(AmountTextBox.Text) 
    labor = Decimal.Parse(LaborTextBox.Text) 

    partstotal = material 
    labortotal = labor * 50 
    subtotal = labortotal + partstotal 
    tax = subtotal * 0.08 
    total = subtotal + tax 

    partstotal = Decimal.Parse(PartsTextBox.Text) 
    labortotal = Decimal.Parse(LaborTextBox.Text) 
    subtotal = Decimal.Parse(SubTotalTextBox.Text) 
    tax = Decimal.Parse(SalesTaxTextBox.Text) 
    total = Decimal.Parse(TotalTextBox.Text) 

Материал = Десятичный.Парт (AmountTextBox.Text) не запускается. Почему?Формат Исключение не обрабатывается

+1

Что вы имеете в виду, не бежите? Кажется, что это исключение, верно? Копирование и вставка ошибки здесь поможет получить хорошие ответы;) –

ответ

1

Каково строковое значение внутри текстового поля?

TryParse() вернет ошибку вместо метания. Попробуйте это вместо этого.

+0

Я не уверен, что вы просите, а work = Decimal.Parse (LaborTextBox.Text) не будет запущен либо –

+0

@ScottESwingle. Должно быть возможно зафиксировать значения Текстовые поля в отладчике или просто скопируйте их из формы. Исключение происходит, вероятно, из-за пользовательского ввода, который не может быть проанализирован. – GregC

1

То, что я думаю, что GregC говорит, что вам нужно использовать такой код:

Dim material As Decimal 
If Not Decimal.TryParse(AmountTextBox.Text, material) Then 
    ' the text in AmountTextBox could not be parsed as 
    ' a Decimal. 
    'TODO: do something about it. 
End If 

Хотя с тем, что многие пункты для проверки, вы можете быть в состоянии обеспечить лучший пользовательский опыт с помощью ErrorProvider Class.

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