怎样动态调用带参数的窗体???急急急..以线等

Free_Windy 2008-01-17 10:07:39
AssemblyName an = new AssemblyName("WinForm");
Form fm = (Form)Assembly.Load(an).CreateInstance("WinForm.ProductForm");

fm.Show();

以上是可以调用成功的,但现在有个需要,就是窗体的调用需要带参数:
如:一般这样实例的:
ProductForm pd = new ProductForm("ClassId");
当有了一个ClassId之后,上面的程序应该怎样写?

我这样写是错的:
AssemblyName an = new AssemblyName("WinForm");
Form fm = (Form)Assembly.Load(an).CreateInstance("WinForm.ProductForm('ClassId')");
fm.Show();

请各高手帮帮忙....
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackeyabc 2008-01-24
  • 打赏
  • 举报
回复
收藏
心情解码 2008-01-17
  • 打赏
  • 举报
回复
利用反射动态调用窗体对象的方法:
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;
}
王集鹄 2008-01-17
  • 打赏
  • 举报
回复
参考如下代码:
AssemblyName an = new AssemblyName("WinForm");
Form fm = (Form)Assembly.Load(an).CreateInstance("WinForm.ProductForm", false,
BindingFlags.CreateInstance, null, new object[] { "Zswang 路过" },
null, null);
manonroad 2008-01-17
  • 打赏
  • 举报
回复
args 是ojbect[]{classID}.
manonroad 2008-01-17
  • 打赏
  • 举报
回复
Try this....

Form fm = (Form)Assembly.Load(an).CreateInstance("WinForm.ProductForm", false, BindingFlags.Public, null, args, null, null);
blestcc 2008-01-17
  • 打赏
  • 举报
回复
ProductForm pd = new ProductForm("ClassId");
pd.Show();

110,570

社区成员

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

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

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