32.基于单文档和多文档的应用程序
通常可以将Windows窗口应用程序分为3类:基于单文档界面(SDI)应用程序,基于多文档界面(MDI)应用程序和基于对话框的应用程序。
SDI应用程序中所有的窗口都是平等的,窗口之间不存在层次关系;MDI应用程序包含一个父窗口(也称为容器窗口)和一个或多个子窗口。对话框是Windows应用程序中重要的用户界面元素之一,是用户交互的重要手段。windows主要有3种对话框,模态对话框,非模态对话框,通用对话框。
基于多文档界面(MDI)的应用程序。当父窗口关闭时,会自动关闭所有的子窗口,如果某个子窗体关闭失败,就会取消父窗口的关闭。多个子窗口只能有一个活动窗口,它获得用户的输入焦点,与用户交互,进行前台数据处理。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication19
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
/*
Form2 form2 = new Form2();
form2.Show();
form2.MdiParent = this;
Form3 form3 = new Form3();
form3.Show();
form3.MdiParent = this;
Form4 form4 = new Form4();
form4.Show();
form4.MdiParent = this;
*/
}
private void 加载子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
form2.MdiParent = this;
Form3 form3 = new Form3();
form3.Show();
form3.MdiParent = this;
Form4 form4 = new Form4();
form4.Show();
form4.MdiParent = this;
}
private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi( MdiLayout.TileHorizontal );
}
private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi( MdiLayout.TileVertical );
}
private void 层叠平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi( MdiLayout.Cascade );
}
private void 关闭子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form[] formList = this.MdiChildren;
foreach (Form form in formList)
{
form.Close();
}
}
}
}