求教一个问题: 如何激活一个应用程序,并使它运行在我自己的C#应用程序的窗体之中呢?  就好像电视一样:我的程序在外围,相当于机器, 被激活调用的程序相当于播放的节目,在我程序的窗体之中这种思路有可行性么?谢谢

解决方案 »

  1.   

    在C#里,完全可行,假设你熟悉反射(还不知道先看一下书),以下是核心思想1)利用反射创建另外一个exe(或dll)中主窗体的实例,设为 frmChild2)设你主窗体是frmMain,那么只要如下设定就可以了frmChild.TopLevel = false;
    frmChild.Paremt   = this;
    frmChild.Show();这样,这个窗体就会运行在你的程序之中
      

  2.   

    frmChild.Parent = this;:)应该是"Parent"
      

  3.   

    //调用其他程序集中的窗口
    private void LoadOtherAssembly(string frmurl,BindingFlags flags,Object[] args)
    {
    try
    {
    string assemblyname,frmname;
    assemblyname=Class_Comm.LeftChr(frmurl,',');
    frmname=Class_Comm.RightChr(frmurl,',');
    if (assemblyname=="" || frmname=="")
    {
    Class_Comm.ErrMsgBox("程序模块表配置不正确,请和系统管理员联系!");
    return;
    }
    Assembly ass=Assembly.LoadFrom(assemblyname);
    Form frm=(Form)ass.CreateInstance(frmname,true,flags,null,args,null,null);
    frm.MdiParent=this;
    frm.Show ();
    }
    catch(Exception errmsg)
    {
    Class_Comm.ErrMsgBox(errmsg.Message );
    }
    }