65.9K
CodeProject is changing. Read more.
Home

UserControls as SDI Windows

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.57/5 (3 votes)

Jan 15, 2014

CPOL
viewsIcon

8776

downloadIcon

214

Introduction 

This tip provides an example in which the content area of a single document interface application is switched between two or more UserControls.

Background

This tip was created in response to a question in Quick Answers.

Using the code

The code contains a parent Form, containing a ToolStripContainer. The tool strip contains two buttons, used to switch between user controls. The user controls are added/removed to the container's Content property in response to button presses.

using System.Windows.Forms;

namespace RedCell.App.Example.UserControls
{
    /// 
    /// The application's main form.
    /// 
    public partial class MainForm : Form
    {
        private readonly UserControl _christmasCarolControl;
        private readonly UserControl _greatExpectationsControl;

        /// 
        /// Initializes a new instance of the  class.
        /// 
        public MainForm()
        {
            InitializeComponent();

            // Create a single instance of each child control.
            _christmasCarolControl = new ChristmasCarol {Dock = DockStyle.Fill};
            _greatExpectationsControl = new GreatExpectations { Dock = DockStyle.Fill };
        }

        private void GreatExpectationsButton_Click(object sender, System.EventArgs e)
        {
            ToolStripContainer.ContentPanel.Controls.Clear();
            ToolStripContainer.ContentPanel.Controls.Add(_greatExpectationsControl);
        }

        private void ChristmasCarolButton_Click(object sender, System.EventArgs e)
        {
            ToolStripContainer.ContentPanel.Controls.Clear();
            ToolStripContainer.ContentPanel.Controls.Add(_christmasCarolControl);
        }
    }
}