C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题)。
在codeproject找到了一篇相关的文章(http://www.codeproject.com/Articles/9123/Hosting-EXE-Applications-in-a-WinForm-project),虽然可用,但是很不方便,于是重新设计编写了一个类库,用一个控件完成内嵌其它应用程序的功能。
直接上图先:
?
?
?
从打开Adobe Reader那张图片可以看出来所谓的“内嵌程序和宿主程序的窗口激活状态问题”。当内嵌程序窗口激活时,表面上将其包裹起来的宿主窗口却处于非激活的状态。想隐藏这一点的话,把窗口的FormBorderStyle属性设为None吧,然后自己在窗口上画关闭、最大化、最小化按钮好了。
?
原作者的实现思路更能暴露本质,所以这里用原作者的代码段解释一下实现过程。
1、启动要嵌入的应用程序进程
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
-
webform程序回车,怎么将焦点能指定到需要的控件下
-
C# 开发录制类似自动化测试工具,该怎么解决
-
新建c#项目,好象未保存时,也可以运行这个项目,不解,此时文件存在何处呢?难道未保存前全部项目内容全暂存于内存中吗?该怎么解决
-
GridControl 新增记要并保存到数据库(WINFORM程序)
-
设定模式窗体的大小(winform) .
-
求更好的思路,大家伙儿来看看
-
C#实现FTP方式上载功能
-
Linq 事务处理,该怎么解决
-
asp.net一个主题文章,里面要分页进行说明,就像很多服装网站那样
-
Windows下的DataGrid中,當某列的連續行值相同時,只顯示最上面那一行解决方案
-
求:asp.net工作流的资料,该怎么解决
-
怎么控制删除条件
-
Log4net 多层不好用解决方法
-
关于水晶报表打印有关问题.
-
帮助文件总是挡在前面解决思路
-
数据源有关问题
-
水晶报表里如何改数据库的用户名和密码
-
怎么获取已下传文件的内容 求教
-
水晶报表放到IIS下出现以上异常,如何解决呀
-
nhibernate 剔除