MDI和继承窗体设计

MDI窗体设计:(Multiple-Document Interface)

用途:用于同时显示多个文档,每个文档显示在各自的窗体中。

起到容器作用的窗体被称为"父窗体",可放在父窗体中的其他窗体称为"子窗体",也称为"MDI子窗体"。

每个应用程序只能有一个父窗体,并且其他子窗体不能移出父窗体的框架区域。

1.设置父窗体:

在窗体的属性面板
将IsMdiContainer属性设置为True即可

2.设置子窗体:

通过设置窗体的MdiParent属性来确定子窗体

Form2 form2 = new Form2()

form2.Show()

form2.MdiParent=this;//这里设置了MdiParent,将当前窗体作为父窗体。

3.对MDI窗体进行排列

使用带有MdiLayout枚举的LayoutMdi方法排列子窗体

枚举成员:

Cascade:所有MDI子窗体层叠在MDI父窗体工作区内

TileHorizontal:所有MDI子窗体均水平平铺在MDI父窗体的工作区内

TileVertical:所有MDI子窗体均垂直平铺在MDI父窗体的工作区内

示例代码:

LayoutMdi(MdiLayout.TileHorizontal)//使用MdiLayout枚举实现窗体的水平平铺

继承窗体:

创建继承窗体有两种方式:

一是通过编程方式创建继承窗体,二是使用继承选择器创建继承窗体。

1.编程方式创建继承窗体(Form2继承Form1)

原始代码:

namespace Form(项目名)

{

public partial class Form2:Form  //表示当前窗体继承于Form类

{......}

}

修改之后:

只需修改:public partial class Form2:Form.Form1(使用Form2窗体继承Form1窗体)

2.使用继承选择器创建继承窗体

(1)选择项目->右击->添加->新建项,打开"添加新项"

(2)在"添加新项"对话框中选择"继承的窗体",并输入窗体名称,单击"添加"按钮,打开"继承选择器"对话框,

(3)在"继承选择器"对话框中单击浏览按钮,选择要继承的基窗体,单击"确定‘,完成继承窗体的创建。

当向窗体中添加控件时,控件的Modifiers属性默认为Private,但如果继承这样的窗体,则在继承窗体中控件的属性全部为不可编辑状态。

其实,我们可以通过基窗体中控件的Modifiers属性设置为Public,来实现在继承窗体中编辑控件属性的功能。

MDI和继承窗体设计

时间: 2024-10-23 22:23:12

MDI和继承窗体设计的相关文章

.Net学习 第3季02 winform应用程序 MDI窗体设计 menuStrip

窗体2.3.4...只落在窗体1(父窗体)的范围内并且可以全部显示的设计---MDI窗体设计 在窗体1中创建menuStrip类的对象(菜单栏),设置其中一个的点击事件为显示窗体2.3.4 private void 显示子窗体ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); Form3 f3 = new Form3(); f3.Show(); Form4 f4 = ne

C# winform窗体设计-查询单个值

查询单个值主要用于对成绩最低分,最高分,学生总数,学生性别等信息的统计 在查询单个值的时候用到了ExecuteScalar方法,连接以及语句方面,以及思路和对数据的增删改差不多 下面请看一段代码: string s = "server=.;database=SampleDb;Integrated Security=True"; SqlConnection c = new SqlConnection(s); c.Open(); SqlCommand command = new SqlCo

主窗体和继承窗体

程序将第一个创建的窗体作为主窗体.如果创建了一个后,在其他窗体尚未创建的时候便释放调,此时又创建了一个窗体,那么第二次创建的窗体就会变成主窗体了. 关闭主窗体,程序就认为是终止运行,并且调用 Free 释放掉主窗体资源,进而程序结束退出.而关闭其他非主窗体,程序只是将其隐藏起来了. 子窗体会将主窗体的属性方法继承下来,对于主窗体中手动增加的方法(即声明在访问控制级别private.protected.published.public 中的方法),除非显示的增加 virtual 关键字,并在子类中

C# winform窗体设计-通过条件查询数据

在winform 数据库设计中,有时候需要通过条件查询对应的数据,并且将数据显示在文本框(or 富文本框)中,下面,小编将讲述通过一个条件: 首先,我们需要对数据库建立连接,并且执行数据库命令,在此之前,我们先创建一个winform窗体,窗体设计大概如下所示:    在创建窗体后,我们应该进行书写代码阶段: 1 string s = "server=SAM_PC;database=MInformationDB;Integrated Security=true"; 2 SqlConnec

手动修改继承窗体

转自http://blog.csdn.net/atian2009/article/details/7478234 1.手工修改窗体继承时,怎样让其父类的所有控件显示(在设计时)? File -> New -> Form,新建一个form,在form的单元文件中修改 TForm1 = class(TForm) 为: TForm1 = class(TFatherForm) //TFatherForm为被继承的窗体 不要忘记  uses TFatherForm的单元文件, 再在Form窗体上弹出右键

关于继承的设计

我将成员变量称之为类的属性,  将成员函数称之为类的接口 关于子类继承父类,  比较让我蛋疼的用法就是在子类中直接使用父类的成员变量,  且不说父类完全有可能不是自己设计的, 就算是自己设计的, 也许已经过了N久了, 再次使用父类里面的属性时都要想一下这个属性到底是干什么用的.比如当时写了一个类:Parent,  而且也就是在当时, 还写了一个子类:Man,  然后在Man这个类中直接对Parent的属性进行操作.  然后又过了N久,  某一位新人接手先人写的代码,  但是它只拿到了Man的代码

以MyBatis+SpringMVC3.0实现的,借鉴了Hibernate设计思想,采用封装、抽象、继承的设计思想,做到了数据与相应的操作的高内聚低耦合的实现

QQ:1138789752 Email.java类: package com.lmc.ink.entity.seo; import com.lmc.ink.entity.IEntity; /** * 推广邮箱表(s_email)实体类 * @author lmc * */ public class Email extends IEntity { /** * 唯一标识 * */ public static final long serialVersionUID = 537132705L; /**

Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 19. 如果使用继承则设计,并文档说明,否则不该使用 条目 18中提醒你注意继承没有设计和文档说明的"外来"类的子类化的危险. 那么为了继承而设计和文档

WPF 继承自己设计的窗体控件

baseWin不能有XAML文件,只能是一个类 namespace WPFStudy { public class MyBaseWin : Window { public MyBaseWin(int w, int h, String title) { this.WindowStartupLocation = WindowStartupLocation.CenterScreen; this.Width = w; this.Height = h; this.Title = title; this.F