c# - 在 winform 应用程序中使用表单名称打开表单

标签 c# winforms c#-4.0 desktop-application windows-applications

请问在winform c#中如何使用帮助或类名打开窗体?

我有三种不同的形式

  • 用户管理
  • 群组管理
  • 位置管理

我从数据库中获得了这三种形式的许可

在菜单中单击我用这样的表单名称填充标签属性

tsmMain.Tag = item.PermissionName
tsmMain.Click += new EventHandler(tsmMain_Click);

我想做的是在单击按钮时动态打开表单并删除这些 if 条件? 我可以通过反射(reflection)或其他方式做到这一点吗??

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();
        }

最佳答案

您可以使用您的表单名称作为字符串参数来做这样的事情:

var form = (Form)Activator.CreateInstance(Type.GetType("YourNameSpace.UserManagement"));
form.Show();

关于c# - 在 winform 应用程序中使用表单名称打开表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155024/

相关文章:

c# - 动态操作<T> : Invalid Arguments when executed

c# - 针对指定 *LIBL 而不是特定库的 AS400 执行 SQL

c# - ReportViewer - Windows XP 上的 System.IO.FileNotFoundException

c# - 如何使用 GraphicsPath 绘制形状来创建自定义控件的区域?

IQueryable 上的 C# Entity Framework .ToList() 引发错误 System.Data.SqlTypes.SqlNullValueException : Data is Null

c# - Gridview 行命令

c# - 类似于 WPF ItemsControl 的用户控件列表

c# - 以 "ddmmyy"格式对字符串数据进行排序

c# - 任务完成后如何调用过程

c# - 如何覆盖动态对象属性的获取访问器