为什么我会收到InvalidOperationsException错误?

时间:2011-02-24 23:29:47

标签: vb.net unhandled-exception

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

这是我得到的错误:

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

以下是代码:

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)         如果design =“Basic”那么             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),它工作正常。请在此启发我...

0 个答案:

没有答案