实例说明
MDI窗体是一种应用非常广泛的窗体类型,在一个主窗体内包含多个子窗体,子窗体永远不会显示在主窗体的外面。当子窗体不能完全的显示在主窗体中时,主窗体会显示滚动条来调整可视范围,在其他开发环境中为MDI窗体添加背景图片十分困难。但在C# 2.0中实现非常容易。在本例中实现了一个具有背景的MDI窗体。实例效果如图1.48所示。
技术要点
在C# 2.0中直接提供了BackgroundImage 属性,该属性可以直接设置窗体的背景图片。设置IsMdiContainer属性为True可以使窗体成为MDI主窗体。下面详细介绍一下相关属性。
(1)BackgroundImage属性
获取或设置在控件中显示的背景图像。其语法结构如下:
public virtual Image BackgroundImage { get; set; }
l 属性值:一个Image,表示在控件的背景中显示的图像。
(2)Form.IsMdiContainer属性
获取或设置一个值,该值指示窗体是否为多文档界面(MDI)子窗体的容器。其语法结构如下:
public bool IsMdiContainer { get; set; }
l 属性值:如果该窗体是MDI子窗体的容器,则为True;否则为False。默认为False。
此属性将窗体的显示和行为更改为MDI父窗体。当此属性设置为True时,该窗体显示具有凸起边框的凹陷工作区。所有分配给该父窗体的MDI子窗体都在该父窗体的工作区内显示。
实现过程
(1)创建一个项目,将其命名为Ex01_47,默认窗体为Form1。
(2)添加一个窗体,默认窗体的Name属性为Form2。
(3)为Form1窗体中添加背景图片。
(4)设置Form1窗体的IsMdiContainer属性为True,该窗口作为MDI主窗体。
(5)主要程序代码。
private void Form1_Load(object sender, EventArgs e)
{
Form2 f = new Form2( );
f.MdiParent = this;
f.Show( );
}
举一反三
根据本实例,读者可以开发以下程序。
为非MDI窗体制作背景。
为MDI子窗体设定显示区域。