我希望实现一个功能:
打开主窗体,点击主窗体菜单打开一个子窗体A1;
这个子窗体要求由动态调用 DLL 文件MyForm.dll 生成;
修改MyForm项目,重新编译生成MyForm.dll;
关闭子窗体A1,但不关闭主窗体,用新编译生成MyForm.dll更换原来的MyForm.dll;
点击主窗体菜单,打开一个子窗体A2。
这样就实现了不停机,动态修改程序。
问题1:我等想法是用多线程+APPDomain+动态调用 来实现这个功能,测试下来如果不要求窗体A1和窗体A2作为子窗体的话其他功能可以实现,但是因为窗体A1和窗体A2是在与主窗体不用的线程和APPDomain中,无法以主窗体的子窗体弹出。
问题2:以上描述的功能,有没有更好的实现方式?
不吝赐教。
7 个解决方案
#1
线程切换,invokerequired 具体看这个帮助
#2
看看
#3
#4
帮顶啊,不会又是跨线程操作的问题吧
#5
感觉思路还可以啊,我弄得一个项目,整体上思路差不多。。。
#6
關注,頂起
#7
不关闭主窗体而动态生成在dll可能做不到。
即使是动态的调用了dll中的窗体,也可以做成主窗窗体的子窗体,子窗体可以是Mdi类型的子窗体,也可以是非Mdi类型的子窗体。这和Dll无关。
即使是动态的调用了dll中的窗体,也可以做成主窗窗体的子窗体,子窗体可以是Mdi类型的子窗体,也可以是非Mdi类型的子窗体。这和Dll无关。
#1
线程切换,invokerequired 具体看这个帮助
#2
看看
#3
#4
帮顶啊,不会又是跨线程操作的问题吧
#5
感觉思路还可以啊,我弄得一个项目,整体上思路差不多。。。
#6
關注,頂起
#7
不关闭主窗体而动态生成在dll可能做不到。
即使是动态的调用了dll中的窗体,也可以做成主窗窗体的子窗体,子窗体可以是Mdi类型的子窗体,也可以是非Mdi类型的子窗体。这和Dll无关。
即使是动态的调用了dll中的窗体,也可以做成主窗窗体的子窗体,子窗体可以是Mdi类型的子窗体,也可以是非Mdi类型的子窗体。这和Dll无关。