DirectCast(Activator.CreateInstance(Type.GetType(FormName)), Form).Show()
The Type.GetType() is a method that accepts a string name for the form (i.e.: "MyNamespace.MyFormName") and returns the System.Type for that form. The Activator.CreateInstance() accepts a type and creates a new instance of it through reflection to find the default constructor. The DirectCast just CTypes the returned object as a Form, and Show() is pretty self explanatory.
So, the only change you'll need to make is to change the FormName that you're storing off in DevEx's menu from just "Form1" to "MyNamespace.Form1" so that you will have the full type name of the form you want to show.
No doubt there is an easy solution to this but after serveral hours and failing to find it why not ask the experts? I have a project that contains a meu form (DevExpress NavBar) which is populated from the database. So, I click on an item and I now have a form name which I want to open. Here's the hard part - I can't find any way to iterate through all the forms in my project and .Show the right one, i.e. I can find a forms collection (open forms I can see but not all the forms in my project). I'm just about ready to write a large Case statement to, e.g
Select Case FormName Case "Form1" My.Forms.Form1.Show() Case "Form2" My.Forms.Form2.Show()
but obviously I don't want to do that. What's the best way of doing things?
Cheers, Peter