Csharp/CSharp Tutorial/GUI Windows Forms/MDI

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Arrange Child form

using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
public class MDIFormArrange : System.Windows.Forms.Form
{
  private System.Windows.Forms.MainMenu mainMenu1;
  private System.Windows.Forms.MenuItem mnuFile;
  private System.Windows.Forms.MenuItem mnuFileExit;
  private System.Windows.Forms.MenuItem mnuWindow;
  private System.Windows.Forms.MenuItem mnuArrange;
  private System.Windows.Forms.MenuItem mnuArrangeCascade;
  private System.Windows.Forms.MenuItem mnuArrangeVert;
  private System.Windows.Forms.MenuItem mnuArrangeHorizontal;
  private System.Windows.Forms.MenuItem mnuFileNew;
  private System.ruponentModel.Container components = null;
  public MDIFormArrange()
  {
    InitializeComponent();
  }
  protected override void Dispose( bool disposing )
  {
    if( disposing )
    {
      if (components != null) 
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }
  private void InitializeComponent()
  {
    this.mainMenu1 = new System.Windows.Forms.MainMenu();
    this.mnuFile = new System.Windows.Forms.MenuItem();
    this.mnuFileNew = new System.Windows.Forms.MenuItem();
    this.mnuFileExit = new System.Windows.Forms.MenuItem();
    this.mnuWindow = new System.Windows.Forms.MenuItem();
    this.mnuArrange = new System.Windows.Forms.MenuItem();
    this.mnuArrangeCascade = new System.Windows.Forms.MenuItem();
    this.mnuArrangeVert = new System.Windows.Forms.MenuItem();
    this.mnuArrangeHorizontal = new System.Windows.Forms.MenuItem();
    // 
    this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                          this.mnuFile,
                                          this.mnuWindow,
                                          this.mnuArrange});
    // 
    this.mnuFile.Index = 0;
    this.mnuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                        this.mnuFileNew,
                                        this.mnuFileExit});
    this.mnuFile.Text = "&File";
    // 
    this.mnuFileNew.Index = 0;
    this.mnuFileNew.Text = "&New";
    this.mnuFileNew.Click += new System.EventHandler(this.mnuFileNew_Click);
    // 
    this.mnuFileExit.Index = 1;
    this.mnuFileExit.Text = "E&xit";
    this.mnuFileExit.Click += new System.EventHandler(this.mnuFileExit_Click);
    // 
    this.mnuWindow.Index = 1;
    this.mnuWindow.MdiList = true;
    this.mnuWindow.Text = "&Window";
    // 
    this.mnuArrange.Index = 2;
    this.mnuArrange.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                           this.mnuArrangeCascade,
                                           this.mnuArrangeVert,
                                           this.mnuArrangeHorizontal});
    this.mnuArrange.Text = "&Arrange Window";
    // 
    this.mnuArrangeCascade.Index = 0;
    this.mnuArrangeCascade.Text = "&Cascade";
    this.mnuArrangeCascade.Click += new System.EventHandler(this.mnuArrangeCascade_Click);
    // 
    this.mnuArrangeVert.Index = 1;
    this.mnuArrangeVert.Text = "&Vertical";
    this.mnuArrangeVert.Click += new System.EventHandler(this.mnuArrangeVert_Click);
    // 
    this.mnuArrangeHorizontal.Index = 2;
    this.mnuArrangeHorizontal.Text = "&Horizontal";
    this.mnuArrangeHorizontal.Click += new System.EventHandler(this.mnuArrangeHorizontal_Click);
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(292, 269);
    this.IsMdiContainer = true;
    this.Menu = this.mainMenu1;
    this.Name = "MDIFormArrange";
    this.Text = "The MDI Application";
  }
  [STAThread]
  static void Main() 
  {
    Application.Run(new MDIFormArrange());
  }
  private void mnuFileExit_Click(object sender, System.EventArgs e)
  { 
      this.Close(); 
  }
  private void mnuArrangeCascade_Click(object sender, System.EventArgs e)
  { 
      LayoutMdi(MdiLayout.Cascade); 
  }
  private void mnuArrangeVert_Click(object sender, System.EventArgs e)
  { 
      LayoutMdi(MdiLayout.TileVertical); 
  }
  private void mnuArrangeHorizontal_Click(object sender, System.EventArgs e)
  { 
      LayoutMdi(MdiLayout.TileHorizontal); 
  }
  private void mnuFileNew_Click(object sender, System.EventArgs e)
  {
    MDIChildForm newChild = new MDIChildForm();
    newChild.MdiParent = this;
    newChild.Show();    
  }
}
public class MDIChildForm : System.Windows.Forms.Form
{
  private System.ruponentModel.Container components = null;
  public MDIChildForm()
  {
    InitializeComponent();
  }
  protected override void Dispose( bool disposing )
  {
    if( disposing )
    {
      if(components != null)
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }
  private void InitializeComponent()
  {
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(292, 269);
  }
}

Is a form Mdi Container

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class ChildPrototypeForm : Form {
    public ChildPrototypeForm() {
        InitializeComponent();
    }
    private void ChildPrototypeForm_Click(object sender, EventArgs e) {
        int r, g, b;
        Random ran = new Random();
        r = ran.Next(0, 255);
        g = ran.Next(0, 255);
        b = ran.Next(0, 255);
        Color currColor = Color.FromArgb(r, g, b);
        this.BackColor = currColor;
        this.Text = currColor.ToString();
    }
    private void InitializeComponent() {
        this.Click += new System.EventHandler(this.ChildPrototypeForm_Click);
    }
}
public class MainWindow : Form {
    public MainWindow() {
         InitializeComponent();
    }
    private void cascadeToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.Cascade); }
    private void verticalToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileVertical); }
    private void horizontalToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileHorizontal); }
    private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }
    private void newToolStripMenuItem_Click(object sender, EventArgs e) {
        ChildPrototypeForm newChild = new ChildPrototypeForm();
        newChild.MdiParent = this;
        newChild.Show();
    }
    private void InitializeComponent() {
        this.menuStrip1 = new System.Windows.Forms.MenuStrip();
        this.fileToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
        this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.windowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.arrangeWindowsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.cascadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.verticalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.horizontalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.menuStrip1.SuspendLayout();
        this.SuspendLayout();
        // 
        // menuStrip1
        // 
        this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.fileToolStripMenuItem1,
            this.windowToolStripMenuItem,
            this.arrangeWindowsToolStripMenuItem});
        this.menuStrip1.Location = new System.Drawing.Point(0, 0);
        this.menuStrip1.MdiWindowListItem = this.windowToolStripMenuItem;
        this.menuStrip1.Name = "menuStrip1";
        this.menuStrip1.Size = new System.Drawing.Size(440, 24);
        this.menuStrip1.TabIndex = 2;
        this.menuStrip1.Text = "menuStrip1";
        // 
        // fileToolStripMenuItem1
        // 
        this.fileToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.newToolStripMenuItem,
            this.exitToolStripMenuItem});
        this.fileToolStripMenuItem1.Name = "fileToolStripMenuItem1";
        this.fileToolStripMenuItem1.Text = "&File";
        // 
        // newToolStripMenuItem
        // 
        this.newToolStripMenuItem.Name = "newToolStripMenuItem";
        this.newToolStripMenuItem.Text = "&New";
        this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
        // 
        // exitToolStripMenuItem
        // 
        this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
        this.exitToolStripMenuItem.Text = "E&xit";
        this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
        // 
        // windowToolStripMenuItem
        // 
        this.windowToolStripMenuItem.Name = "windowToolStripMenuItem";
        this.windowToolStripMenuItem.Text = "&Window";
        // 
        // arrangeWindowsToolStripMenuItem
        // 
        this.arrangeWindowsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.cascadeToolStripMenuItem,
            this.verticalToolStripMenuItem,
            this.horizontalToolStripMenuItem});
        this.arrangeWindowsToolStripMenuItem.Name = "arrangeWindowsToolStripMenuItem";
        this.arrangeWindowsToolStripMenuItem.Text = "&Arrange Windows";
        // 
        // cascadeToolStripMenuItem
        // 
        this.cascadeToolStripMenuItem.Name = "cascadeToolStripMenuItem";
        this.cascadeToolStripMenuItem.Text = "&Cascade";
        this.cascadeToolStripMenuItem.Click += new System.EventHandler(this.cascadeToolStripMenuItem_Click);
        // 
        // verticalToolStripMenuItem
        // 
        this.verticalToolStripMenuItem.Name = "verticalToolStripMenuItem";
        this.verticalToolStripMenuItem.Text = "&Vertical";
        this.verticalToolStripMenuItem.Click += new System.EventHandler(this.verticalToolStripMenuItem_Click);
        // 
        // horizontalToolStripMenuItem
        // 
        this.horizontalToolStripMenuItem.Name = "horizontalToolStripMenuItem";
        this.horizontalToolStripMenuItem.Text = "&Horizontal";
        this.horizontalToolStripMenuItem.Click += new System.EventHandler(this.horizontalToolStripMenuItem_Click);
        // 
        // MainWindow
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(440, 238);
        this.Controls.Add(this.menuStrip1);
        this.IsMdiContainer = true;
        this.Name = "MainWindow";
        this.Text = "My Mdi Application";
        this.menuStrip1.ResumeLayout(false);
        this.ResumeLayout(false);
        this.PerformLayout();
    }

    private System.Windows.Forms.MenuStrip menuStrip1;
    private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem1;
    private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem windowToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem arrangeWindowsToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem cascadeToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem verticalToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem horizontalToolStripMenuItem;
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new MainWindow());
    }
}

MDI children form background

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public partial class ChildForm : Form
{
    public ChildForm()
    {
        InitializeComponent();
    }
    private void settoRedToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.BackColor = Color.Red;
    }
    private void settoBlueToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.BackColor = Color.Blue;
    }
    private void settoGreenToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.BackColor = Color.Green;
    }
    public void Save()
    {
        MessageBox.Show("I have saved my data!");
    }
}
partial class ChildForm
{
    private void InitializeComponent()
    {
        this.menuStrip1 = new System.Windows.Forms.MenuStrip();
        this.specialToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.settoRedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.settoBlueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.settoGreenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.menuStrip1.SuspendLayout();
        this.SuspendLayout();
        // 
        // menuStrip1
        // 
        this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
        this.specialToolStripMenuItem});
        this.menuStrip1.Location = new System.Drawing.Point(0, 0);
        this.menuStrip1.Name = "menuStrip1";
        this.menuStrip1.Size = new System.Drawing.Size(534, 24);
        this.menuStrip1.TabIndex = 0;
        this.menuStrip1.Text = "menuStrip1";
        // 
        // specialToolStripMenuItem
        // 
        this.specialToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
        this.settoRedToolStripMenuItem,
        this.settoBlueToolStripMenuItem,
        this.settoGreenToolStripMenuItem});
        this.specialToolStripMenuItem.Name = "specialToolStripMenuItem";
        this.specialToolStripMenuItem.Text = "&Special";
        // 
        // settoRedToolStripMenuItem
        // 
        this.settoRedToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.settoRedToolStripMenuItem.Name = "settoRedToolStripMenuItem";
        this.settoRedToolStripMenuItem.Text = "Set to Red";
        this.settoRedToolStripMenuItem.Click += new System.EventHandler(this.settoRedToolStripMenuItem_Click);
        // 
        // settoBlueToolStripMenuItem
        // 
        this.settoBlueToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.settoBlueToolStripMenuItem.Name = "settoBlueToolStripMenuItem";
        this.settoBlueToolStripMenuItem.Text = "Set to Blue";
        this.settoBlueToolStripMenuItem.Click += new System.EventHandler(this.settoBlueToolStripMenuItem_Click);
        // 
        // settoGreenToolStripMenuItem
        // 
        this.settoGreenToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.settoGreenToolStripMenuItem.Name = "settoGreenToolStripMenuItem";
        this.settoGreenToolStripMenuItem.Text = "Set to Green";
        this.settoGreenToolStripMenuItem.Click += new System.EventHandler(this.settoGreenToolStripMenuItem_Click);
        // 
        // ChildForm
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(534, 541);
        this.Controls.Add(this.menuStrip1);
        this.MainMenuStrip = this.menuStrip1;
        this.Name = "ChildForm";
        this.Text = "ChildForm";
        this.menuStrip1.ResumeLayout(false);
        this.ResumeLayout(false);
        this.PerformLayout();
    }
    private System.Windows.Forms.MenuStrip menuStrip1;
    private System.Windows.Forms.ToolStripMenuItem specialToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem settoRedToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem settoBlueToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem settoGreenToolStripMenuItem;
}
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void newToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm child = new ChildForm();
        child.MdiParent = this;
        child.Show();
    }

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm formToSave = (ChildForm)this.ActiveMdiChild;
        formToSave.Save();
    }
    private void fileToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
    {
        if (this.MdiChildren.Length == 0)
            saveToolStripMenuItem.Enabled = false;
        else
            saveToolStripMenuItem.Enabled = true;
    }
}
partial class Form1
{
    private void InitializeComponent()
    {
        this.menuStrip1 = new System.Windows.Forms.MenuStrip();
        this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
        this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
        this.menuStrip1.SuspendLayout();
        this.SuspendLayout();
        // 
        // menuStrip1
        // 
        this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
        this.fileToolStripMenuItem});
        this.menuStrip1.Location = new System.Drawing.Point(0, 0);
        this.menuStrip1.Name = "menuStrip1";
        this.menuStrip1.Size = new System.Drawing.Size(576, 24);
        this.menuStrip1.TabIndex = 0;
        this.menuStrip1.Text = "menuStrip1";
        // 
        // fileToolStripMenuItem
        // 
        this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
        this.newToolStripMenuItem,
        this.saveToolStripMenuItem,
        this.toolStripSeparator1,
        this.exitToolStripMenuItem});
        this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
        this.fileToolStripMenuItem.Text = "&File";
        this.fileToolStripMenuItem.DropDownOpening += new System.EventHandler(this.fileToolStripMenuItem_DropDownOpening);
        // 
        // toolStripSeparator1
        // 
        this.toolStripSeparator1.Name = "toolStripSeparator1";
        // 
        // newToolStripMenuItem
        // 
        this.newToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.newToolStripMenuItem.Name = "newToolStripMenuItem";
        this.newToolStripMenuItem.Text = "&New";
        this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
        // 
        // saveToolStripMenuItem
        // 
        this.saveToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
        this.saveToolStripMenuItem.Text = "&Save";
        this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
        // 
        // exitToolStripMenuItem
        // 
        this.exitToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
        this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
        this.exitToolStripMenuItem.Text = "E&xit";
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(576, 438);
        this.Controls.Add(this.menuStrip1);
        this.IsMdiContainer = true;
        this.MainMenuStrip = this.menuStrip1;
        this.Name = "Form1";
        this.Text = "Form1";
        this.menuStrip1.ResumeLayout(false);
        this.ResumeLayout(false);
        this.PerformLayout();
    }
    private System.Windows.Forms.MenuStrip menuStrip1;
    private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
    private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
    private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
    private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
}
public class ChildFormBackGround
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}

Set MdiParent

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;

class frmContainer : Form {
    public frmContainer() {
        InitializeComponent();
        frmChild child = new frmChild(this);
        child.Show();
    }
    private void InitializeComponent() {
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(292, 273);
        this.IsMdiContainer = true;
        this.Name = "frmContainer";
        this.Text = "MDI Basic";
        this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    }
}
class frmChild : Form {
    public frmChild(frmContainer parent) {
        InitializeComponent();
        this.MdiParent = parent;
    }
    private void InitializeComponent() {
        this.Text = "frmChild";
    }
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new frmContainer());
    }
}