c#winform窗体嵌入
最近开发项目,错误的理解了需求,自己做了个窗体的嵌套,虽然是错误的理解了,但是功能还是实现了,做下标记,需要时可以拿来看看。
新建两个窗体Form1和Form2,现在需要将Form2显示到Form1里,我们该怎么办呢?上代码先,一看就明白了,在form 的load方法里加入下面的代码,form2是要显示的子窗体,
namespace chuangtiqiantao
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Form2 f = new Form2( );
this.IsMdiContainer = true;//指定为父窗体
f.MdiParent = this;//指定子窗体的父窗体
f.Parent = this.splitContainer1.Panel1;//指定父容器
f.Show();
}
}
}
这些代码得意思已注明,运行效果如下

到此,嵌入成功,这是基本的嵌入办法,更多的时候我们需要对嵌入进去的窗体做操作,比如说form2的内容很多,我想放大里面的子窗体form2去做一些操作,也就是将form2跳出form1的束缚,等操作完了再回到form1中,下面是具体的代码和思路,首先将from1设计器里的容器panle设为公有(public) public System.Windows.Forms.SplitContainer splitContainer1,这样子子窗体才能访问到,form1的load函数如下,只是加了一个参数this
namespace chuangtiqiantao
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Form2 f = new Form2(this);
this.IsMdiContainer = true;//指定为父窗体
f.MdiParent = this;//指定子窗体的父窗体
f.Parent = this.splitContainer1.Panel1;//指定父容器
f.Show();
}
}
}
现在得去form2里面做操作了上代码
namespace chuangtiqiantao
{
public partial class Form2 : Form
{
Form1 f1 = null;
public Form2(Form1 f)
{
InitializeComponent();
f1 = f;
} private void Form2_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.MdiParent = null;//不设父窗体
}
if (this.WindowState == FormWindowState.Minimized)
{
this.MdiParent = f1;//指定子窗体的父窗体
this.Parent = f1.splitContainer1.Panel1;//指定父容器
}
}
}
}
运行效果是,点击最大化的时候form2跳出form1的容器限制范围,点击最小化的时候form2回到form1中,具体结果图片我就不上传了。
c#winform窗体嵌入的更多相关文章
- WinForm窗体嵌入
一.在winform窗体上添加两个控件 1.容器>Panel 2.添加 SideBar.dll (下载链接:http://pan.baidu.com/s/1o6qhf9w) (1)将SideBa ...
- winform窗体嵌套HTML页面,开发出炫彩桌面程序
一:CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chromium项目主要是为Google Chrome应用开发 ...
- C#将exe运行程序嵌入到自己的winform窗体中
以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的e ...
- 外部exe窗体嵌入winform
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- exe程序嵌入Winform窗体
1.新建winform程序,添加一个Panel控件和一个button控件,winform窗体命名为:Mainform: 2.新建一个类文件,方便引用,命名为:exetowinform: 3.Mainf ...
- C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部【转载】
这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题) ...
- 【转】C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
PS:文末的附件已更新,这次我放到博客园里面了,不会弹出广告,放心下载,O(∩_∩)O谢谢! 这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开 ...
- winform 窗体圆角设计
网上看到的很多winform窗体圆角设计代码都比较累赘,这里分享一个少量代码就可以实现的圆角.主要运用了System.Drawing.Drawing2D. 效果图 代码如下. private void ...
- WinForm 窗体属性 窗体美化
WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...
随机推荐
- viewPager--viewpager时,发生内存溢出OOM问题
两个问题:1.如果图片达到500kb每张,你这个划屏会有顿卡:2.快速滑动有出现0.几秒的白屏.图片越大,顿卡越明显. 回复parcool:500kb的背景算大的了,如果是想做图片墙,viewpage ...
- Oracle数据库体系结构及创建表结构
Oracle服务器主要由实例.数据库.程序全局区和前台进程组成,其中实例就是用来提供管理数据库的功能:数据库由数据库文件组成,用来存储系统数据:实例可以进一步划分为系统全局区(SGA)和后台进程(PM ...
- Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说 ...
- Silverlight ComboBox with TreeView
本代码根据国外同名控件代码修改而来--对于N-Tier项目,要求数据源都实现一个接口显然很不方便,因此做了如下修改: 删除接口定义及相关代码 增加了DisplayMember属性,用于标明在Combo ...
- fish药品使用说明
大白片Octozin的官方的使用方法首先换水1/3-1/2.第一天:开始下药(每22.5升水下1片药)第二天:继续下药(每22.5升水下1片药)第三天:还是下药(每22.5升水下1片药)也就是每天下同 ...
- 转(Response.WriteFile 无法下载大文件解决方法)
以前用Response.WriteFile(filename),但当遇到大文件时无法完整下载. 该方法最大的问题,它不是直接将数据抛到客户端,而是在服务器端(IIS)上缓存.当下载文件比较大时,服务器 ...
- 通过WMI接口监控服务器性能
WMI 是微软操作系统的一个内置的组件,通过使用WMI我们可以获取服务器硬件信息.收集服务器性能数据.操作Windows服务,甚至可以远程关机或是重启服务器. 一.在C#编程中使用WMI 要想在C#程 ...
- Capture Current Soft Screen
Bitmap memoryImage; private void CaptureScreen() { Graphics myGraphics = this.CreateGraphics(); Size ...
- (windows)mongoDB3X+Robomongo的安装与基础配置
一开始安装的时候还觉得很简单真正装了时候发现网上的资料参差不齐再次整理一份安装方法 ---------------------------------------------------------- ...
- Ninject之旅之八:Ninject插件模型(附程序下载)
摘要 在前面的章节中,我们看了在单一的绑定条件下Ninject能够处理依赖类型,就是说,每个服务类型只绑定到单一的实现类型.然而,有些情况下我们需要绑定一个抽象服务类型到多个实现,这叫多个绑定.多个绑 ...