在winform下通过输入窗体名称打开窗体 void open(form a){ a.show()}但参数必须不是此方法的局部变量 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 switch(textbox1.Text){case "form1": Form form1 = new form1(); form1.Show(); break;} 先定义一下新form:form1 newForm = new form1;if (textBox1.Text=="form1"){ newForm.Show();} 这个比较好:private void showMyForm(string fullFormName){ Form frm = (Form)Activator.CreateInstance( Type.GetType(fullFormName) ); frm.Show();}//when use it:this.showMyForm( "YourNamespace.frmName" ); TO:Tomgus(小桥流水) private void showMyForm(string fullFormName){ Form frm = (Form)Activator.CreateInstance( Type.GetType(fullFormName) ); frm.Show();}//when use it:this.showMyForm( "Form1" );提示错误:值不能为空。参数名:type Tomgus(小桥流水) 要求写fullFormName,也就是包括form所在的namespace也要写在其中。否则会出错。 switch(textbox1.Text){case "form1": Form form1 = new form1(); form1.Show(); break;}简单而且容易理解 我不知道你为什么不选择它。 TO lucbesson(女娃哈哈)这个对于多个窗体来说,是不可行的,你不可能设定多个case吧。如果有几十到上百个窗体的话,这样的设计我觉得效率是不高的。 照 Tomgus(小桥流水)和yanransoft() 所说的解决了问题,结贴了。。 本贴已接,但我还是要把好方法告诉大家:用反谢!!!看看利用反射动态调用窗体对象的方法: private void CreateForm(string strName) { this.Cursor = Cursors.WaitCursor; string path=AssemblyName;//项目的Assembly选项名称 string name=strName; //类的名字 Form fm=(Form)Assembly.Load(path).CreateInstance(name); fm.MdiParent=this.ParentForm; fm.Show(); fm.Dock=DockStyle.Fill; this.Cursor = Cursors.Default; } 高分求各位高手指点!!!急!!!!!!!!! [Winform]怎样在Form2中操作Form1中的控件?? 急,急,急分页问题?? 雷达监视终端 枚举 yagebu1983 BCD回答 64位操作系统windowsserver2003是否支持.netFramework1.1 如何在cs里出字符串包括<%# DataBinder.Eval(Container, "DataItem.guid")%>绑定数据 导出文本的问题 急求:asp.net文件下载,带进度条前后台完整代码!!! 菜鸟问题 安装 升星后,200分求大数据量下的打印方案,听听五星级高手的意见。
{
case "form1":
Form form1 = new form1();
form1.Show();
break;
}
form1 newForm = new form1;if (textBox1.Text=="form1")
{
newForm.Show();
}
{
Form frm = (Form)Activator.CreateInstance( Type.GetType(fullFormName) );
frm.Show();
}//when use it:
this.showMyForm( "YourNamespace.frmName" );
Tomgus(小桥流水) private void showMyForm(string fullFormName)
{
Form frm = (Form)Activator.CreateInstance( Type.GetType(fullFormName) );
frm.Show();
}//when use it:
this.showMyForm( "Form1" );提示错误:
值不能为空。
参数名:type
否则会出错。
{
case "form1":
Form form1 = new form1();
form1.Show();
break;
}简单而且容易理解 我不知道你为什么不选择它。
这个对于多个窗体来说,是不可行的,你不可能设定多个case吧。如果有几十到上百个窗体的话,这样的设计我觉得效率是不高的。
用反谢!!!
看看利用反射动态调用窗体对象的方法:
private void CreateForm(string strName)
{
this.Cursor = Cursors.WaitCursor; string path=AssemblyName;//项目的Assembly选项名称
string name=strName; //类的名字 Form fm=(Form)Assembly.Load(path).CreateInstance(name);
fm.MdiParent=this.ParentForm;
fm.Show();
fm.Dock=DockStyle.Fill;
this.Cursor = Cursors.Default;
}