Как сделать общедоступной суб-форму ShowDialog - PullRequest
0 голосов
/ 25 апреля 2019

Как сделать общедоступной форму SubDialog

У меня есть Модуль, и я хочу поместить код, который я могу использовать во всех проектах для открытия форм.

Я пытался поместить этот код в модуль Put не работает

Public Sub OpenForm(ByVal Frm As Form)
    Frm = New Frm()
    frm.ShowDialog()
End Sub

Ошибка: «Тип« Frm »не определен»

С уважением и благодарностью за помощь Салем

Ответы [ 2 ]

2 голосов
/ 25 апреля 2019

Вы могли бы написать свой саб, чтобы показать диалог

Public Module MyModule

    Public Sub OpenForm(ByVal Frm As Form)
        frm.ShowDialog()
    End Sub

End Module

который будет называться так

Dim myForm = New Form()
MyModule.OpenForm(myForm)

Но было бы намного проще просто сделать

Dim myForm = New Form()
myForm.ShowDialog()

EDIT

Вот общая версия, которая создает и удаляет форму, поскольку она используется модально

Public Module MyModule

    Public Sub OpenForm(Of T As {Form, New})()
        Using frm As New T()
            frm.ShowDialog()
        End Using
    End Sub

End Module

который будет называться так

MyModule.OpenForm(Of Form)()
' or with your custom form class
MyModule.OpenForm(Of MyCustomFormClass)()
0 голосов
/ 25 апреля 2019

В модуле

Public Sub ShowADialog()
    Dim dialog As New SaveFileDialog
    dialog.ShowDialog()
End Sub

В форме

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ShowADialog()
End Sub
...