开发者

Why do I get an InvalidOperationsException error?

Here's the deal. I tried using classes instead of the usual modules(in an attempt to try a different approach[aside from what I know that is] to OOP). So I used classes and in a simple showing and hiding of forms, I got an InvalidOperationsException error. Weirded out, I removed the OOP parts and just tried calling the other form directly on the form itself and still got the same error.

Here's the error I get:

An error occurred creating the form. See Exception.InnerExcep开发者_高级运维tion for details. The error is: The form referred to itself during construction from a default instance, which led to infinite recursion. Within the Form's constructor refer to the form using 'Me.'

Here's the code:

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

either way, I get the same error.

Tried using modules instead. Here's the code:

Public Sub ShowForm(ByVal frmName As String)

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

    End If
End Sub

Now so far (in all my programming experience) this ought to work just fine, but it still returns the same error..

Update!

Tried removing all OOP aspects in form calling and left a module to simply show or hide some controls in one form.

Here's the code in the module:

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

Now correct me if I'm wrong, but I do believe nothing is wrong with it right?

Now here's the code of the form where the module was used:

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

And here's the code of the form that calls the form above:

Private Sub frmSales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 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

Now it just boggles me why I get this error.. If I removed all OOP (including the subprocedure DesignSelect), it works fine. Kindly enlighten me on this...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜