从form1调用文本框时出错

时间:2016-03-29 23:21:45

标签: vb.net forms visual-studio-2015

我遇到了这个问题:

我在Form2上有这段代码:

Public Class Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim lbl0, lbl1, lbl11, lbl2, lbl22, lbl3, lbl33, lbl4, lbl44, lbl5, lbl55, lbl6, lbl66, lbl7, lbl77 As New Label
    lbl0.Text = "ACCESORIOS"
    lbl0.Font = New System.Drawing.Font("MS Reference Sans Serif", 15.75, FontStyle.Bold)
    lbl0.Location = New Point(110, 12)
    lbl0.AutoSize = True
    Me.Controls.Add(lbl0)
    lbl1.Text = "Té 180°"
    lbl11.Text = Te180
    lbl2.Text = "Té 90° Empalme - Codo Triple"
    If form1.TextBox3.Text <> 0 Then
        lbl22.Text = 0
    Else
        lbl22.Text = (Int(form1.TextBox1.Text) + Int(form1.TextBox2.Text)) - 1
    End If
    lbl3.Text = "Soporte 90° T/T"
    lbl33.Text = SoporteTT90
    TableLayoutPanel1.Controls.Add(lbl33, 0, 0)
End Sub
End Class

不要介意未使用的变量,或单个tablelayoutpannel添加,因为它是正在进行的工作。无论如何,这个代码在我第一次运行时效果很好,但是当我按下重置时,

这是form1中包含这段代码的按钮:

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim frm = New form1
    frm.Show()
    Me.Close()
    Te180 = 0
    ContadorGlobal = 0
    SoporteTT90 = 0
    End Sub

我最终得到了这个错误:

  

未处理的类型&#39; System.InvalidCastException&#39;发生了   在Microsoft.VisualBasic.dll中       附加信息:从字符串转换&#34;&#34;输入&#39; Double&#39;无效。

当程序通过这里时我明白了:

If form1.TextBox3.Text <> 0 Then
    lbl22.Text = 0
Else
    lbl22.Text = (Int(form1.TextBox1.Text) + Int(form1.TextBox2.Text)) - 1
End If

感谢任何帮助。很多我没有正确地调用form1.textbox1.text。也许我没有正确地重置它。我不知道,因为我不是专家。提前谢谢!

1 个答案:

答案 0 :(得分:1)

Textboxes和Labels的Text属性是String类型。

假设form1.TextBox1.Textform1.TextBox2.Text包含整数值,您将算术运算结果设置为lbl22.Text,其中应包含字符串,而不是数字。

更改

lbl22.Text = (Int(form1.TextBox1.Text) + Int(form1.TextBox2.Text)) - 1

通过

lbl22.Text = ((Int(form1.TextBox1.Text) + Int(form1.TextBox2.Text)) - 1).ToString

表示错误Conversion from string "" to type 'Double' is not valid告诉您空字符串无法转换为数字,因此在执行算术之前,请确保TextBox1.TextTextBox2.Text都不为空操作