Почему я получаю ошибку InvalidOperationsException? - PullRequest
1 голос
/ 25 февраля 2011

Вот сделка.Я попытался использовать классы вместо обычных модулей (в попытке попробовать другой подход [помимо того, что я знаю, что это] к ООП).Поэтому я использовал классы, и при простом показе и скрытии форм я получил ошибку InvalidOperationsException.Причудлив, я удалил части ООП и просто попытался вызвать другую форму непосредственно в самой форме и все еще получил ту же ошибку.

Вот ошибка, которую я получаю:

Произошла ошибка при созданииформа.Смотрите 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

Теперь (на всем моем опыте программирования) это должно работать нормально, но все равно возвращает ту же ошибку ..

Обновление!

Попытался удалить все аспекты ООП в вызове формы и оставил модуль, чтобы просто показать или скрыть некоторые элементы управления в одной форме.

Вот код в модуле:

Public Sub DesignSelect (ByValdesign As String) If design = "Basic", то frmAddOrder.lblD3.Hide () frmAddOrder.cmbD3Color.Hide ()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.Загрузить

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

Теперь меня это просто поражаетпочему я получаю эту ошибку .. Если я удалил все ООП (включая подпроцедуру DesignSelect), он работает нормально.Пожалуйста, просветите меня об этом ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...