【发布时间】:2015-10-16 14:26:43
【问题描述】:
作为 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
你能帮我解释一下逻辑吗?稍后在同一个模块中,我将这一行称为子:
Dim scrX As Integer = frmMain.pnlDraw.Size.Width
而且效果很好?所以我似乎错过了逻辑。帮忙?
错误详情(注意这是来自新模块,因此我不能使用 Me。):
System.InvalidOperationException 未处理 H结果=-2146233079 Message=创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:表单在从默认实例构造期间引用自身,导致无限递归。在表单的构造函数中,使用“我”来引用表单。
【问题讨论】:
-
在表单中讨论
Sub New过程中的代码。不是那个压力函数。那个东西可能会收到 4 Doubles 虽然而不是引用表单(并且显然使用默认实例) -
我发现当表单被调用时,它会从
Private Sub txtPthick_TextChanged(sender As Object, e As EventArgs) Pocket_Link_to_Form()调用模块所以@Plutonix 从技术上讲,您的第二次评估是正确的。我的下一个问题是为什么表单加载和调用 textbox__TextChanged