我遇到了这个问题:
我在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。也许我没有正确地重置它。我不知道,因为我不是专家。提前谢谢!
答案 0 :(得分:1)
Textboxes和Labels的Text属性是String类型。
假设form1.TextBox1.Text
和form1.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.Text
和TextBox2.Text
都不为空操作