九、嵌入窗体

还是关于 Winform 窗体的一些操作问题,这次是研究了一个嵌入窗体,这次学习纯属偶然,项目中确实没遇到过这种需求。就是把别人的程序嵌入到自己的程序中,就像这样:

这里我嵌入了测试显示器的程序

这次学习得益于一片博客(引用一定要注明出处 ^_^):
http://www.cnblogs.com/bitzhuwei/archive/2012/05/24/SmileWei_EmbeddedApp.html

关于嵌入程序的资料,上面链接博客的作者写的非常详细了,而且也整理了相关的代码,可以下载学习。

这里我自己也整理学习了一下,有需要可以下载。源码下载

嵌入过程主要代码

private void EmbedProcess(Process app, Control control)
{//验证进程和控件非空if (app == null || app.MainWindowHandle == IntPtr.Zero || control == null) return;try{//核心代码:嵌入程序SetParent(app.MainWindowHandle, control.Handle);}catch (Exception) { }try{//移除嵌入的窗口的窗口标题栏SetWindowLong(new HandleRef(this, app.MainWindowHandle), GWL_STYLE, WS_VISIBLE);}catch (Exception) { }try{//将嵌入的窗口欧放置到合适位置,填满宽高MoveWindow(app.MainWindowHandle, 0, 0, control.Width, control.Height, true);}catch (Exception) { }
}

效果图

这里可以看到嵌入程序的三个步骤:
1. 嵌入程序
2. 移除嵌入的窗口的窗口标题栏
3. 将嵌入的窗口欧放置到合适位置,填满宽高

截图感受一下:
1.嵌入程序

2.移除嵌入的窗口的窗口标题栏

3.将嵌入的窗口欧放置到合适位置,填满宽高

疑问

最后还是有一些疑问没有解决:
1. 焦点的问题;
2. 有些应用不能被嵌入;
3. 有些应用嵌入位置可能出现异常;

C# Winform 窗体美化(九、嵌入窗体)相关推荐

  1. C# Winform 窗体美化(目录)

    最近在看 C# Winform 的窗体美化,发现一些很有用的美化皮肤库,学习过后也把一些资料整理一下. 一.IrisSkin 换肤库(IrisSkin4) 二.LayeredSkin 界面库(Laye ...

  2. WinForm在窗体中嵌入窗体

    WinForm在窗体中嵌入窗体WinForm在窗体中嵌入窗体WinForm在窗体中嵌入窗体 Form1.cs SubForm 代码 using System; using System.Collect ...

  3. c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...

    C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...

  4. 【转】C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部

    PS:文末的附件已更新,这次我放到博客园里面了,不会弹出广告,放心下载,O(∩_∩)O谢谢! 这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开 ...

  5. C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部

    这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上--跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题) ...

  6. winform窗体嵌入窗体

    有些时候我们需要将子窗体嵌入父窗体来实现一些效果这时该怎么做呢. //通过给panel加载子元素实现Form1 form =new Form1();form.FormBorderStyle = For ...

  7. java jframe面板美化,Java-JFrame窗体美化

    Java-JFrame窗体美化 JFrame默认的窗体比较土,可以通过一定的美化,让窗体表现的比较漂亮,具体要根据设计的设计图进行美化: JFrame美化的大致思路:先将JFrame去除默认美化效果, ...

  8. winform父窗体实现多个子窗体只能显示一个

    一.前言 当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服.所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决 ...

  9. C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列

    1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // //  平铺 base.LayoutMdi(MdiLayou ...

最新文章

  1. 资质申报 - 系统集成企业资质等级评定条件(2012年修定版)
  2. 【 MATLAB 】fliplr 函数介绍(从左到右翻转阵列)
  3. RxJava Timer:代替handler
  4. Android调焦函数,高通Android驱动中的对焦马达的配置
  5. Spring-AOP实践 - 统计访问时间
  6. Linux系统vi编辑器执行命令,linux下vi编辑器命令
  7. IDEA将项目上传至码云/GitHub托管
  8. 对于shell脚本参数获取时的一点小技巧
  9. 网站应该更注重内部链接还是外部链接?
  10. kubernetes session回话保持
  11. 软件工程——软件详细设计
  12. mysql.sock文件的作用
  13. 转载 GIS的下个十年(Cary Mann, vice president, Bentley)
  14. 微信支付开发准备工作和详细步骤
  15. 推荐一个Web前端程序员必须要吃透的书籍!
  16. 基于matlab GUI Powell+蚁群算法图像配准
  17. dev c++ 学习C语言+快捷键
  18. 为什么 1 字节表示的数值范围是 127 ~ -128
  19. 微信小程序 ‘腾讯位置服务地图选点插件申请失败’
  20. 走进MSTP -- 7. 软硬管道

热门文章

  1. 运行Hadoop自带的wordcount单词统计程序
  2. Centos7: 配置IO调度
  3. 2017软件工程实践
  4. Graph(2014辽宁ACM省赛)
  5. 微信公众号开发 ssl connect error
  6. WinForm C#全局错误捕捉处理【整理】
  7. Get sdcard directory by adb
  8. DevExpress之TreeList节点绑定图片
  9. if语句写阶跃函数C语言,C语言第四章分支语句.ppt
  10. 深入理解== 和 equals 的区别