Хорошо, конечно, можно захотеть открыть форму по строковому имени.
Когда вы создаете проект winforms vb.net, тогда все формы доступны как "базовый" статический класс.
Вы часто видите много кода, поэтому просто используете базовый класс форм.
Если мне нужно отобразить скажем form2, тогда мне действительно не нужно создавать экземпляр этой формы (если вы не хотите иметь несколько экземпляров этой формы. Поэтому грузовик кода просто запустится + используйте «базовый статический» класс этой формы.
например:
Form2.Show()
Я надеваюне считаете ли вы, что это плохо для практики, так как, по вашему мнению, настройки проекта для «установки» формы запуска в настройках проекта?
Он просто устанавливает встроенный экземпляр «mainForm» =к вашей форме запуска, и она НЕ создает новый экземпляр.
Итак, теперь, когда мы все можем согласиться на более чем 15 лет, любой, кто установил форму запуска в своем проекте, НЕ создает НОВЫЙ экземпляр этой формы,но на самом деле, используя басЭкземпляр класса.Это действительно выбор программирования.
Итак, код для отображения (отображения) базового статического экземпляра формы по имени строки будет выглядеть следующим образом:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strForm As String = "Form1"
ShowFormByName(strForm)
End Sub
Public Sub ShowFormByName(strFormName As String)
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(ProductName & "." & strFormName).show()
End Sub
Private Function FormByName(strFormName As String) As Form
Return System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(ProductName & "." & strFormName)
End Function
Однако, выше приведен вспомогательный вспомогательный элемент, который просто "покажет""который построен в экземпляре форм.
и выше также включает в себя функцию для возврата типа класса формы, поскольку наверняка многие разработчики предпочитают сначала создать экземпляр формы, а затем" показать() "it.
Итак, часто нам требуется несколько экземпляров, или мы просто используем подход кодирования для создания нового экземпляра объекта формы.
Итак, мы используем 2-го помощникафункция для возврата объекта формы того типа, который мы передали по строке.
Итак, чтобы отобразить 3 экземпляра формы form1, но FIRST-экземпляр является базовым классом, а затем еще два, но совершенно новых экземпляра этой формы, мыиметь следующий код:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strForm As String = "Form1"
ShowFormByName(strForm)
Dim f1 As Form = FormByName(strForm)
Dim f2 As Form = FormByName(strForm)
f1.Show()
f2.Show()
End Sub
Таким образом, приведенный выше фрагмент кода показывает, как отобразить встроенную форму базового класса без необходимости создания экземпляра этой формы.
Однако следующие дваформы, которые мы загружаем, являются «новыми» экземплярами этой формы как «строка».
Таким образом, вспомогательная вспомогательная функция и вспомогательная функция дадут вам оба варианта выбора того, какое предпочтение плавает на вашей лодке.