c#,我想根据变量,打开form。
c#,我想根据mssql中的数据,打开form。给变量赋值后(值就是类的名字,类型string),如何根据这个值打开这个form呢。值已经会取了,如何打开,一点头绪都没有...
c#,我想根据mssql中的数据,打开form。
给变量赋值后(值就是类的名字,类型string),如何根据这个值打开这个form呢。
值已经会取了,如何打开,一点头绪都没有。 展开
给变量赋值后(值就是类的名字,类型string),如何根据这个值打开这个form呢。
值已经会取了,如何打开,一点头绪都没有。 展开
4个回答
2013-03-14
展开全部
对于你的问题我是一头雾水,请详细说明:(个人理解给出下面的答案)
首先你的form是一开始创建的还是后来new的,如果是一开始创建了很对的form,你可以对form的名字进行命名。通过你变量的值来查找对应的form,而且你可以在调用类中存储一个成员变量:如
Dictionary<string,Form> dic=new Dictionary<string,Form>();这里的key就是form名称或者是你mssql中的值,而form就是其对应的form窗体。
如果是后来程序对form进行new的话,那就比较简单了,直接在哪里需要的地方:Form form=new Form();
form.ShowDialog();
这是个人的理解,如果什么问题,请描述你的问题。
首先你的form是一开始创建的还是后来new的,如果是一开始创建了很对的form,你可以对form的名字进行命名。通过你变量的值来查找对应的form,而且你可以在调用类中存储一个成员变量:如
Dictionary<string,Form> dic=new Dictionary<string,Form>();这里的key就是form名称或者是你mssql中的值,而form就是其对应的form窗体。
如果是后来程序对form进行new的话,那就比较简单了,直接在哪里需要的地方:Form form=new Form();
form.ShowDialog();
这是个人的理解,如果什么问题,请描述你的问题。
更多追问追答
追问
一开始创建的~
追答
那你就采用我第一种方式,将你创建的form放在一个字典里面,你查出来的值进行匹配就行呀。
if(dic.ContainsKey("变量的值"))
{
Form form=dic["变量的值"] as From;
form.ShowDialog();
}
展开全部
主要是通过反射来动态创建对象。。
// 方法一:
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
Object obj = asm.CreateInstance("命名空间.窗体ID", true);
System.Windows.Forms.Form myForm = obj as System.Windows.Forms.Form;
myForm.Show();
// 方法二:
System.Runtime.Remoting.ObjectHandle handler = Activator.CreateInstance(null, "命名空间.窗体ID");
Object obj = handler.Unwrap();
System.Windows.Forms.Form myForm = obj as System.Windows.Forms.Form;
myForm.Show();
// 方法一:
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
Object obj = asm.CreateInstance("命名空间.窗体ID", true);
System.Windows.Forms.Form myForm = obj as System.Windows.Forms.Form;
myForm.Show();
// 方法二:
System.Runtime.Remoting.ObjectHandle handler = Activator.CreateInstance(null, "命名空间.窗体ID");
Object obj = handler.Unwrap();
System.Windows.Forms.Form myForm = obj as System.Windows.Forms.Form;
myForm.Show();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
反射技术,好好了解一下就有解决方案了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要的是不是switch,或者if else啊?
追问
不是哦,不过也谢谢你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询