1

这是交易。我尝试使用类而不是通常的模块(试图尝试一种不同的方法 [除了我所知道的] 到 OOP)。所以我使用了类,在简单的显示和隐藏表单中,我得到了一个 InvalidOperationsException 错误。奇怪的是,我删除了 OOP 部分,只是尝试直接在表单本身上调用另一个表单,但仍然遇到相同的错误。

这是我得到的错误:

创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:表单在构造过程中从默认实例引用自身,导致无限递归。在表单的构造函数中,使用“我”来引用表单。

这是代码:

Private Sub btnNewSales_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewOrder.Click

'This ought to have opened the new form via a method in the class
        'order.NewOrder()  
        frmNewOrder.Show()  
        Me.Hide()  

End Sub

无论哪种方式,我都会遇到同样的错误。

尝试使用模块代替。这是代码:

Public Sub ShowForm(ByVal frmName As String)

    If frmName = "Order" Then
        frmOrders.Show()
    ElseIf frmName = "AddOrder" Then
        frmAddOrder.Show()

    End If
End Sub

现在到目前为止(在我所有的编程经验中)这应该可以正常工作,但它仍然返回相同的错误..

更新!

尝试删除表单调用中的所有 OOP 方面,并留下一个模块以在一个表单中简单地显示或隐藏一些控件。

这是模块中的代码:

Public Sub DesignSelect(ByVal design As String) If design = "Basic" Then frmAddOrder.lblD3.Hide() frmAddOrder.cmbD3Color.Hide() frmAddOrder.cmbD3Type.Hide() frmAddOrder.lblD4.Hide() frmAddOrder.cmbD4Color.Hide( ) frmAddOrder.cmbD4Type.Hide()

    Else

    End If
End Sub

如果我错了,现在请纠正我,但我相信它没有任何问题,对吧?

现在这里是使用模块的表单的代码:

Dim selectedDesign As String = ""

Private Sub frmSalesTrans_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub frmSalesTrans_FormClosing(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.FormClosing
    'ShowForm("Order")
    frmOrders.Show()

End Sub

Private Sub rdbBasic_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbBasic.CheckedChanged
    selectedDesign = "Basic"
    DesignSelect(selectedDesign)

End Sub

这是调用上述表单的表单代码:

Private Sub frmSales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 MyBase.Load

End Sub

Private Sub btnNewSales_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewOrder.Click

    Me.Hide()
    frmAddOrder.Show()

End Sub

现在它让我感到困惑为什么我会收到这个错误。如果我删除了所有 OOP(包括子过程 DesignSelect),它工作正常。请告诉我这个...

4

0 回答 0