Vb.net 未处理InvalidOperationException。。I';我没有看到逻辑错误?图书管理系统

Vb.net 未处理InvalidOperationException。。I';我没有看到逻辑错误?图书管理系统,vb.net,forms,module,Vb.net,Forms,Module,作为VB.Net的新手,非常随意的程序员。我正在努力找出这句话中的逻辑错误。它说我正在递归调用表单,但我没有看到它 我在Form类之外创建了一个新模块,我将从中初始化所有函数。在这个函数中,我从几个文本框请求文本数据 ' ----- A function within a module ----- Private Function run_stress_function() 'Building my class Dim req_width As New Pocket_Stress

作为VB.Net的新手,非常随意的程序员。我正在努力找出这句话中的逻辑错误。它说我正在递归调用表单,但我没有看到它

我在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。错误是:表单在从默认实例构造时引用了自身,这导致了无限递归。在表单的构造函数中,使用“Me”引用表单。

您的异常消息说明了一切

在表单的构造函数中,使用“Me”引用表单。

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


它是在表单中的
Sub New
过程中讨论代码。不是那种压力作用。但是,这东西可能会收到4个双精度,而不是引用表单(显然是使用默认实例),我发现当调用表单时,它会从
Private Sub txtphick_TextChanged(发送者作为对象,e作为事件参数)Pocket_Link_to_form()调用模块
So@puropoix从技术上讲,您的第二次评估是正确的。我的下一个问题是为什么表单加载并调用textbox\uuuTextChangeDyeah,不,这不起作用。。。记得我说过我创建了一个新模块。。。所以我不在班上。。因此,“Me.”=错误BC32001在这种情况下,您可以将它(
Me
)作为调用表单的参数传递,并将表单类型参数添加到
run\u pressure\u函数
。我想我可以将表单传递给模块。但它没有解释为什么稍后我可以在同一模块中直接引用Dim scrX作为Integer=frmMain.pnlDraw.Size.Width,但不同的子时间是一个因素。这取决于调用这些东西的时间。这取决于您的逻辑、事件顺序。从何处以及在什么上下文中调用函数(run_press_函数),以及表单(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