I want to ask what should i do to open form with the help or class name in winform c#?
I have three different forms
- UserManagement
- GroupsManagement
- LocationManagement
I get permission from database for these three forms
in menu click i fill tag Property with the name of form like this
tsmMain.Tag = item.PermissionName
tsmMain.Click += new EventHandler(tsmMain_Click);
what i want to do is to open form dynamically in button click and to remove these if condition? Can i do this with reflection or else??
ToolStripMenuItem aa = sender as ToolStripMenuItem;
var tag = aa.Tag;
if (tag == "User Management")
{
UserManagement oUserForm = new UserManagement();
oUserForm.Show();
}
if (tag == "Groups Management")
{
GroupManagement oGroupForm = new GroupManagement();
oGroupForm.Show();
}
You may be able to do something like this, using the name of your form, as a string argument:
One straightforward, but not necessarily very clean solution would be to store the forms right there in the
Tag
property of your menu items, rather than the strings.Somewhere at the beginning of your application, you'd have to assign these instances:
Then, in the click event, you could shorten your code to:
Cleaner solutions would include the following: