Как закрыть форму1, открыть форму2 и вскоре после возвращения в форму1 и закрытия формы2?У меня проблемы со ссылкой - PullRequest
0 голосов
/ 29 января 2019

-

Private Sub ACTIVECLOSEToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ACTIVECLOSEToolStripMenuItem.Click
    Dim Nform As New Aba_Principal_SecondShift
    Nform.Show()
    Hide()
End Sub

Private Sub CREATEWORKNUMBERToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CREATEWORKNUMBERToolStripMenuItem.Click
    Dim Nform2 As New Aba_Principal_ThirdShift
    Nform2.Show()
    Hide()
End Sub

Мой вопрос заключается в том, что если я поставлю обратный процесс, я получу следующую ошибку: «Невозможно добавить ссылку. Добавление этого проекта в качестве ссылки приведет к циклической зависимости».

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Может быть, это поможет: я просто изменил ваш код, я объявил fc как форму и присвоил ей значение как открытую форму в вашем приложении, после этого я создал if statement, тогда если if fc является открытой формой, затем закройте ее и покажите форму, которую вы хотите показать.PS: не забудьте добавить Try Catch Exception в ваш код, чтобы предотвратить сбой приложения.

Private Sub ACTIVECLOSEToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ACTIVECLOSEToolStripMenuItem.Click
       Dim fc As Form = Application.OpenForms("Form2")
        If fc IsNot Nothing Then fc.Close()
        form1.Show()
End Sub

Private Sub CREATEWORKNUMBERToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CREATEWORKNUMBERToolStripMenuItem.Click
       Dim fc As Form = Application.OpenForms("Form1")
        If fc IsNot Nothing Then fc.Close()
        form2.Show()
End Sub
0 голосов
/ 29 января 2019

Как сказал Джими в комментариях, вам не нужно затемнять новые формы;вам просто нужно открыть их, используя .show(), как показано ниже.Это предполагает, что вы назвали свою первую форму Nform1, а вторая - Nform2.Если нет, просто замените имена на выбранные вами

Private Sub ACTIVECLOSEToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ACTIVECLOSEToolStripMenuItem.Click
    Nform1.Show()
    Me.Close()
End Sub

Private Sub CREATEWORKNUMBERToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CREATEWORKNUMBERToolStripMenuItem.Click
    Nform2.Show()
    Me.Close()
End Sub

При закрытии формы запуска может возникнуть проблема, поскольку по умолчанию Visual Basic закрывает всю вашу программу, когда это происходит, так как высм. ниже под Shutdown mode:

Вместо этого вы можете изменить значение на When last form closes:

Вы можете найтиэто во вкладке настроек приложения вашего проекта.Ниже приведен пример того, где его можно найти:

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