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

新建两个窗体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. oracle 导库建立测试库

    由于客户要定制的关系,需要对产品的数据进行相关的修改,所以需要复制原来的库出来,然后在此基础上再进行修改.步骤如下: 在PL/SQL下操作: /*分为四步 *//*第1步:创建临时表空间  */cre ...

  2. 每天一个 Linux 命令(15):tail 命令

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...

  3. 恢复CRM plugin

    1 使用工具 XrmToolbox http://xrmtoolbox.codeplex.com/releases/view/611881 2 连接:可以使用网络连接,也可以使用本地连接 3 使用 A ...

  4. [手机取证] “神器”IP-BOX的一些问题

    网上最近传的纷纷扬扬的iOS密码破解神器IP-BOX,很多人感兴趣,作为一个该产品的老用户,来破除一下迷信,顺便做个普及~ Q1:这东西好神奇,是不是所有都能破解? A1:支持简单密码的穷举,有条件的 ...

  5. UNIX历史和标准

    1969年,bell实验室 Ken Thompson在小型机上首次实现了UNIX系统 1979年,加州伯克利分校发布了UNIX发布版--BSD, 随着AT&T不在对电信市场形成垄断,该公司被允 ...

  6. UIViewContentMode各类型效果

    UIViewContentMode   typedef enum {    UIViewContentModeScaleToFill,    UIViewContentModeScaleAspectF ...

  7. PullToRefreshListView加载更多定位的解决方法

    之前项目里,早起用到了PullToRefreshListView,后来一部分用到了RefreshListView,最近在做优化的时候,其中一个问题就是PullToRefreshlistView上拉加载 ...

  8. 如何将App程序发布到App Store?

    见链接:http://my.oschina.net/u/1245365/blog/201920

  9. 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

    (转自:http://blog.sina.com.cn/s/blog_5eca668b01018949.html)定义一个类,来对远程X.509证书的验证,进行处理,返回为true.我们要自己定义一个 ...

  10. ruby 2.2

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...