问个很容易的问题啊

hhc123 2010-01-11 02:49:38
数据库中
ID FORM
1 Form2 frm
从数据库中取出
Form2 frm 就一个字符串而已
怎么样才能把他搞成真正Form呢

Form2 frm=new Form2();
frm.show();
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
缭绕飘渺 2010-01-12
  • 打赏
  • 举报
回复
进来学习的
lsj_zrp 2010-01-11
  • 打赏
  • 举报
回复
//strFile:程序集名(Dll或者exe,例如:Application.exe)
//strForm:文件名包含命名空间的(Application.From1)
//strName:窗口名称
private void CreateForm(string strFile, string strForm, string strName)
{
try
{
Form frmCur = null;
Assembly assDLL = Assembly.LoadFrom(Application.StartupPath + "\\" + strFile);
if (assDLL == null)
MessageBox.Show("找不到文件:" + strFile + "\n需要更新程序。");
frmCur = (Form)assDLL.CreateInstance(strForm);
if (frmCur == null)
MessageBox.Show("在文件“" + strFile + "”中找不到类:" + strForm + "\n需要更新程序。");
frmCur.Text = strName;
frmCur.Show();
}
catch
{
MessageBox.Show("加载程序集出错,请联系开发人员!");
}

}
laihuahua 2010-01-11
  • 打赏
  • 举报
回复
路过,学习
zagj11 2010-01-11
  • 打赏
  • 举报
回复
学习了。。呵呵。
redlei 2010-01-11
  • 打赏
  • 举报
回复
学习一下~
buider下 在form2 include form1就可以了
就有form1.lable.text可以用了。
vs下,跟你一起学习一下
fengjian_428 2010-01-11
  • 打赏
  • 举报
回复

Form form= (Form)Assembly.Load("程序及名称").CreateInstance("命名空间." + 窗体名);
form.Show();

hhc123 2010-01-11
  • 打赏
  • 举报
回复
其实我想做一个菜单栏啊
点一下就show相应的窗体啊

本来想这样子的

switch(formname)
{
case "Form2":
Form2 frm=new Form2();
frm.show();
break;
}

就象
Tree()
|---Form2()
|---Form3()
|
就是点一下Treenode就可以显示相应的窗体
感觉太麻烦了吧

tzs2304 2010-01-11
  • 打赏
  • 举报
回复
...
满衣兄 2010-01-11
  • 打赏
  • 举报
回复
这样不就要动态编译了啊

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧