常用属性

设置成父窗体IsMdiContainer设置为true

image.png

关闭子窗体

通常一个父窗体会打开一个子窗体,子窗体会有确认和取消按钮。其实子窗体也是一个Form。如何来控制呢?
父窗体

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. Form2 Form2 = new Form2();
  4. //打开子窗体 线程会停到这。
  5. DialogResult r = Form2.ShowDialog();
  6. //获取到子窗体是点击和确定还是取消
  7. MessageBox.Show(r.ToString());
  8. }

子窗体的两个按钮

  1. private void button5_Click(object sender, EventArgs e)
  2. {
  3. this.DialogResult = DialogResult.OK;
  4. MessageBox.Show(this.DialogResult.ToString());
  5. }
  6. private void button6_Click(object sender, EventArgs e)
  7. {
  8. this.DialogResult = DialogResult.Cancel;
  9. MessageBox.Show(this.DialogResult.ToString());
  10. }

常用事件

窗体加载完成之后的函数

双击窗体进入
image.png
image.png

常用搭档

菜单栏

image.png

实战场景

设计一个Mdi窗口

image.png

  1. private void 创建子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
  2. {
  3. Form frm2 = new Form();
  4. frm2.MdiParent = this;
  5. frm2.Show();
  6. Form frm3 = new Form();
  7. frm3.MdiParent = this;
  8. frm3.Show();
  9. Form frm4 = new Form();
  10. frm4.MdiParent = this;
  11. frm4.Show();
  12. }
  13. private void 横向排列ToolStripMenuItem_Click(object sender, EventArgs e)
  14. {
  15. LayoutMdi(MdiLayout.TileHorizontal);
  16. }
  17. private void 纵向排列ToolStripMenuItem_Click(object sender, EventArgs e)
  18. {
  19. LayoutMdi(MdiLayout.TileVertical);
  20. }