Я пытаюсь запустить конкретную форму в зависимости от выбранного узла дерева в событии двойного клика. Код, который мне нужно использовать для запуска формы, немного громоздкий, потому что я должен убедиться, что форма не удалена и форма еще не открыта, прежде чем запускать новый экземпляр. Я хотел бы, чтобы вся эта проверка происходила в одном месте в конце функции, что означает, что я должен быть в состоянии передать правильный тип формы в код в конце. Я пытаюсь сделать это с System.Type, но, похоже, это не работает. Может кто-нибудь указать мне правильное направление, пожалуйста?
With TreeView.SelectedNode
Dim formType As Type
Select Case .Text
Case "Email to VPs"
formType = EmailForm.GetType()
Case "Revise Replacers"
formType = DedicatedReplacerForm.GetType()
Case "Start Email"
formType = EmailForm.GetType()
End Select
Dim form As formType
Dim form As formType
Try
form = CType(.Tag, formType)
If Not form.IsDisposed Then
form.Activate()
Exit Sub
End If
Catch ex As NullReferenceException
'This will error out the first time it is run as the form has not yet
' been defined.
End Try
form = New formType
form.MdiParent = Me
.Tag = form
CType(TreeView.SelectedNode.Tag, Form).Show()
End With