最近开发项目,错误的理解了需求,自己做了个窗体的嵌套,虽然是错误的理解了,但是功能还是实现了,做下标记,需要时可以拿来看看。

新建两个窗体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窗体嵌入的更多相关文章

  1. WinForm窗体嵌入

    一.在winform窗体上添加两个控件 1.容器>Panel 2.添加 SideBar.dll (下载链接:http://pan.baidu.com/s/1o6qhf9w) (1)将SideBa ...

  2. winform窗体嵌套HTML页面,开发出炫彩桌面程序

    一:CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chromium项目主要是为Google Chrome应用开发 ...

  3. C#将exe运行程序嵌入到自己的winform窗体中

    以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的e ...

  4. 外部exe窗体嵌入winform

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  5. exe程序嵌入Winform窗体

    1.新建winform程序,添加一个Panel控件和一个button控件,winform窗体命名为:Mainform: 2.新建一个类文件,方便引用,命名为:exetowinform: 3.Mainf ...

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

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

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

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

  8. winform 窗体圆角设计

    网上看到的很多winform窗体圆角设计代码都比较累赘,这里分享一个少量代码就可以实现的圆角.主要运用了System.Drawing.Drawing2D. 效果图 代码如下. private void ...

  9. WinForm 窗体属性 窗体美化

    WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...

随机推荐

  1. PHPCMS v9 超级安全防范教程!

    一.目录权限设置很重要:可以有效防范黑客上传木马文件.如果通过 chmod 644 * -R 的话,php文件就没有权限访问了.如果通过chmod 755 * -R 的话,php文件的权限就高了. 所 ...

  2. 功能强大的web打印控件lodop的使用

    打印是很多web系统都需要的功能,最近找到一款功能强大,使用简单,价格便宜的web打印工具Lodop,免费也能用,不过有水印,也不贵商业开发建议购买. 废话不多说,拿来就用,从简单的打印开始. 1.下 ...

  3. win7下 安装 Flask

    参考: http://my.oschina.net/935572630/blog/375758 一 环境版本: os: win7 x64 python: 2.7.10 x64 二 安装步骤: 由于fl ...

  4. Django 之 分表

    app名称为'core',基本的models.py文件内容如下: class Province(models.Model): name = models.CharField(u'省份名称',max_l ...

  5. jquery中获取元素的几种方式小结

    1 从集合中通过指定的序号获取元素 html: 复制代码代码如下: <div> <p>0</p> <p>1</p> <p>2&l ...

  6. html基础 1

    大三已经快要结束的时候才意识到自己真的一点东西都没有学到,然后就决定要在大四结束前能学多少是多少,自己要尽力.之所以要开博客是因为自己总是坚持不了,要给自己一个坚持下去的动力所以开始了.慢慢的一步一步 ...

  7. php-工厂模式(Factory Method)解析

    关于工厂模式,首先要了解的就是多态这个概念:“多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为”,这句话是我在其他博客看到,他已经概括的很好了,我就直接抄袭了.哈哈 通常简单工 ...

  8. 根据不同分辨率加载不同 css 样芪表

    <script language=javascript> <!-- if (screen.width == 800) { document.write('<link rel=s ...

  9. HTTP头的Expires与Cache-control

    HTTP头的Expires与Cache-control 1.概念 Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache) 数据 ...

  10. linux错误码

    1.通过代码输出错误码以及其代表的含义  具体可以参考errno和os模块 errno.errorcode os.strerror(n) # -*- coding:utf8 -*- import os ...