I have seen this question here and there and didnt find a solution for it until recently (in SyncFusion )

So for those who may want to know:
You can use the System.Reflection.Assembly.CreateInstance method to create a form from its name. Below is a code snippet. The name in the textbox has to be the full name including its namespace. So if there is a class named Form2 in namespace MyCompanyName, then the textbox would contain MyCompanyName.Form2. This snippet also assumes that the class is defined in the current executing assembly. If not, you would have to create an instance of the assembly that contains the class instead of calling the static method GetExecutingAssembly. As noted on this board, using reflection in this manner might affect performance.
VB Code:
  1. [C#]
  2.  
  3.      try
  4.  
  5.      {
  6.            Assembly tempAssembly = Assembly.GetExecutingAssembly();
  7.            // if class is located in another DLL or EXE, use something like
  8.            // Assembly tempAssembly = Assembly.LoadFrom("myDLL.DLL");
  9.            // or
  10.            // Assembly tempAssembly = Assembly.LoadFrom("myEXE.exe");
  11.            Form frm1 = (Form) tempAssembly.CreateInstance(textBox1.Text);// as Form;
  12.            frm1.Show();
  13.       }
  14.       catch(Exception ex)
  15.       {
  16.            MessageBox.Show("Error creating: "+ textBox1.Text);
  17.       }
  18.  
  19. [VB.NET]
  20.  
  21.      textBox1.Text = "MyNameSpace.Form2"
  22.  
  23.      ......
  24.       Try
  25.       Dim tempAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
  26.       ' if class is located in another DLL or EXE, use something like
  27.       ' tempAssembly = Assembly.LoadFrom("myDLL.DLL")
  28.      ' or  
  29.      ' tempAssembly = Assembly.LoadFrom("myEXE.exe")  
  30.      Dim frm1 As Form = CType(tempAssembly.CreateInstance(textBox1.Text), Form) ' as Form;
  31.       frm1.Show()
  32.      Catch ex As Exception
  33.           MessageBox.Show("Error creating: " + ex.ToString())
  34.      End Try