InvalidOperationException未处理..我没有看到逻辑错误? VB.net

时间:2015-10-16 14:26:43

标签: vb.net forms module

作为VB.Net的新手,非常随意的程序员。我正在努力在这个声明中找到逻辑错误。它说我递归地调用了Form,但是我没有看到它。

我在Form类之外创建了一个新模块,我正在初始化我的所有函数。在这个函数中,我从几个文本框中请求文本数据。

' ----- A function within a module -----
Private Function run_stress_function()
    'Building my class
    Dim req_width As New Pocket_Stress_Function(CDbl(frmMain.txtPBend.Text),
                                                CDbl(frmMain.txtPAllow.Text),
                                                CDbl(frmMain.txtPthick.Text),
                                                CDbl(frmMain.txtPwidth.Text), 1.5)
    Return req_width.Flange_width
End Function

你能帮我解决这个问题吗?稍后在同一个模块中,我将这一行称为sub:

Dim scrX As Integer = frmMain.pnlDraw.Size.Width

这项工作完美无缺?所以我似乎错过了逻辑。帮助

错误详细信息(请注意,这来自新模块,因此我无法使用我。):

System.InvalidOperationException未处理   的HResult = -2146233079   Message =创建表单时出错。有关详细信息,请参阅Exception.InnerException。错误是:表单在构造期间从默认实例引用自身,这导致无限递归。在Form的构造函数中,使用'Me。'来表示表单。

1 个答案:

答案 0 :(得分:0)

您的异常消息说明了一切

  

在表格的构造函数中,使用'我来参考表单。

以这种方式使用它(用我替换frmMain)

Private Function run_stress_function()
    Dim req_width As New Pocket_Stress_Function(CDbl(Me.txtPBend.Text),
                                                CDbl(Me.txtPAllow.Text),
                                                CDbl(Me.txtPthick.Text),
                                                CDbl(Me.txtPwidth.Text), 1.5)
    Return req_width.Flange_width
End Function