2 new start down new_start_down 于 2015.05.26 23:52 提问

C#根据不同参数弹出不同窗体

比如传入参数为aaa
则实例化aaa窗体
若为bbb
则实例化bbb窗体
如何写成一个公共的方法

3个回答

devmiao
devmiao   Ds   Rxr 2015.05.26 23:56

void showWindowByName(string strForm)
{
Form form = assembly.CreateInstance(strForm) as Form;
form.Show();
}

devmiao
devmiao   Ds   Rxr 2015.05.26 23:56

void showWindowByName(string strForm)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Form form = assembly.CreateInstance(strForm) as Form;
form.Show();
}

devmiao
devmiao 回复new_start_down: 看下你的字符串是否是窗体名,加上名字空间看看,要注意大小写。
2 年多之前 回复
new_start_down
new_start_down 你好,按照你的方式 我在调用此方法的时候出现未将对象引用到示例的错误
2 年多之前 回复
gamefinity
gamefinity   Rxr 2015.05.27 05:43

如果是有限个,你可以这样

Form f= null;
switch(param)
{
case "aaa" : f = new aaa();break;
case "bbb" : f = new bbb();break;
}
f.show();

小喵的方法是没有错的,但是CreateInstance之后是否成功有待验证,你要自己验证一下


Csdn user default icon
上传中...
上传图片
插入图片