-1
VB.Netのフォームにusercontrolを動的に追加したいと思います。私はUserControlの名前(文字列)をデータベースから取得し、そのUserControlがプロジェクトに存在する場合はフォームに追加したいと思います。 プログラムでフォームにusercontrolを追加する方法を知っていますが、名前に文字列を使用する方法がわかりません。動的にUserControlをフォームに追加する
Dim userContName As UserControl = dtModules.Rows(k).Item("uc_Name")
Panel1.Controls.Add(userContName)
は私が
Public Sub LoadGroups()
dtModules = Tbl_GroupModulesTableAdapter1.GetDataBy_spGetModuleByGroup(grp.Name)
For k = 0 To dtModules.Rows.Count - 1
If grp.Name = dtModules.Rows(k).Item("Module_Group") Then
Dim fullyQualifiedClassName As String = dtModules.Rows(k).Item("Module_Name")
If fullyQualifiedClassName = Nothing Then
Else
Dim o = fetchInstance(fullyQualifiedClassName)
Dim b = CType(o, Control)
grp.Controls.Add(b)
End If
End If
Next
End Sub
Public Function fetchInstance(ByVal fullyQualifiedClassName As String) As Object
Dim nspc As String = fullyQualifiedClassName.Substring(0, fullyQualifiedClassName.LastIndexOf("."c))
Dim o As Object = Nothing
Try
For Each ay In Assembly.GetExecutingAssembly().GetReferencedAssemblies()
If (ay.Name = nspc) Then
o = Assembly.Load(ay).CreateInstance(fullyQualifiedClassName)
Exit For
End If
Next
Catch
End Try
Return o
End Function
[Visual Basic:名前として文字列を使用してオブジェクトを動的に作成する](https://stackoverflow.com/questions/3432317/visual-basic-dynamically-create-objects-using-a-string-as) -名前) –