[英]I get an error when calling a textbox from form1
我遇到了以下问题:
我在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
我最终遇到了这个错误:
Microsoft.VisualBasic.dll 中发生类型为“System.InvalidCastException”的未处理异常
附加信息:从字符串 "" 到类型 'Double' 的转换无效。
当程序通过这里时,我明白了:
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。 也许我没有正确重置它。 我不知道,因为我不是专家。 提前致谢!
文本框和标签的文本属性是字符串类型。
假设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
都不为空算术运算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.