在主界面有一个树形菜单,每个菜单对应一个DLL窗体,
1.不知道如何动态的加入这个DLL,不是前期引用那种
2.如果把主界面中的信息传入这个dll窗体中,比如用户名什么的

解决方案 »

  1.   

    一、调用DLL
    DLL窗体是指的被封装到DLL里的窗体吧。
    我提供一个WM5下C#调mfc的DLL的例子:
    1、在类中,Import一个DLL文件(需要DLL文件的路径,推荐放到c#项目的bin目录下),紧接着声明可以显示DLL里窗体的函数。
            [DllImport(@"MyDll.dll", CharSet = CharSet.Unicode)]
            private static extern void ShowDllForm(StringBuilder strIn,StringBuilder strOut);2、在某事件里,例如菜单的OnClick事件中,调用这个函数。下面例子是按钮click,供参考。
            private void button2_Click(object sender, EventArgs e)
            {            StringBuilder strIn = new StringBuilder(256);            StringBuilder strOut = new StringBuilder(256);            ShowDllForm(strIn,strOut);            MessageBox.Show("output value: " + strOut.ToString());        }
    二、向DLL传入参数
    1、可以在调用上面ShowDllForm函数时传入参数,上面传入strIn。
      

  2.   

    1、反射
    2、创建时给参数,Activator.CreateInstance(Type type, params object[] args)
    别忘了强转成Control或者Form
      

  3.   

    可以参考下面最简单的代码来实现:Assembly assembly=Assembly.LoadFile(@"D:\CSharp\abc.dll");
    if (type != null)
    {
    Form frm = assembly.CreateInstance("typeName") as Form;
    if (frm != null)
    {
    frm.Show(this);
    }
    }
      

  4.   

    OK,,也可以,,我的是[email protected],,在线等