DDR*_*DDR 3 c# desktop-application winforms windows-applications c#-4.0
我想问一下,如何在winform c#中使用帮助或类名打开表单?
我有三种不同的形式
我从数据库获得这三种形式的许可
在菜单中单击我填充标签属性与此类型的表单
tsmMain.Tag = item.PermissionName
tsmMain.Click += new EventHandler(tsmMain_Click);
Run Code Online (Sandbox Code Playgroud)
我想要做的是在按钮单击中动态打开表单并删除这些条件?我能用反射做这个吗?
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();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用表单名称作为字符串参数执行以下操作:
var form = (Form)Activator.CreateInstance(Type.GetType("YourNameSpace.UserManagement"));
form.Show();
Run Code Online (Sandbox Code Playgroud)
一个简单但不一定非常干净的解决方案是将表单存储在Tag菜单项的属性中,而不是字符串.
在应用程序开始的某个地方,您必须分配这些实例:
myUserManagementItem.Tag = new UserManagement();
myGroupsManagementItem.Tag = new GroupManagement();
Run Code Online (Sandbox Code Playgroud)
然后,在click事件中,您可以将代码缩短为:
ToolStripMenuItem aa = sender as ToolStripMenuItem;
Form form = aa.Tag as Form;
form.Show();
Run Code Online (Sandbox Code Playgroud)
清洁解决方案包括以下内容:
| 归档时间: |
|
| 查看次数: |
6957 次 |
| 最近记录: |