SIGN UP MEMBER LOGIN:    
ARTICLE

Container Controls 1 : Group Boxes

Posted by Sivaraman Dhamodaran Articles | Windows Forms C# April 05, 2011
In this article I will explain the usage of the Container Control Group box. In the coming articles we will explore other container controls.
Reader Level:
Download Files:
 

1. Introduction

In this article we will explore the usage of the container controls. The container controls are treated by the top most container say a dialog as a control. The container controls can hold some other controls. First we will explore the Group box container control then we will move ahead with other container controls. There will be probably four or five parts and I will provide the links below once all the parts are published.

 

The Container controls have some special properties. They allow you to place controls on it and all the control inherit the properties from the container in which they sit. Say for example if you set the container disabled all the controls in the container becomes disabled. This is useful when you to form a group of controls that performs some action or collect logically similar information from the user.

 

Reserved Space for Links to other parts.

Container Controls. Part 1 : Group Box

 

2. About the example

Pic01.JPG

 

In the above example we have two group boxes called country and actions. They both have logically grouped controls inside it. In the design time I can easily move the controls that belongs to Country group box easily without worrying about the control alignment and orientation. It hold true for the Actions group box also. As you already know these group boxes are actually containers so they allow you place some other control on it.

 

So there are totally three containers in this form including the form. The form treats the group boxes as controls. So the groupbox is a container as well as a control.

 

The enable checkbox when checked allows all the controls inside the Actions group box enabled. We are not setting the enable property for each control for doing this. What we do is simply set the property for the container that is set it for the Action group box. All other similar properties are demonstrated in the Actions group box.

 

Also note that we have two radio groups. One belongs to the Country and one belongs to the action group box. So these two radio sets acts independently.

 

3. Code for the Events


1. First the event handler for the check box based on the state change is created and inside the handler we are checking the checkbox state and enabling or disabling all the controls that belongs to the Actions Group box. Note that we are setting the property for the group box and all the controls inside the group box will automatically get the property from their container unless it is overridden by specifying it for a particular control.

 

private void chkAction_CheckedChanged(object sender, EventArgs e)

{

    //Groupbox 01: Enable or disable the Actions radio group

    if (chkAction.CheckState  == CheckState.Checked)

        grpActions.Enabled = true;

    else

        grpActions.Enabled = false;

}

 

2. Next the radio button state change event is handled. Note that the radio button in this container acts separately from the one, which is already there in the country container. Here, we are setting the background property for the container and there by for the control that it holds.

 

private void rdBack1_CheckedChanged(object sender, EventArgs e)

{

    //Groupbox 02: Set the Background for the Groupbox

    if (rdBack1.Checked == true)

        grpCountry.BackColor = Color.AliceBlue ;

}

 

private void rdBack2_CheckedChanged(object sender, EventArgs e)

{

    //Groupbox 03: Set the Background for the Groupbox

    if (rdBack2.Checked == true)

        grpCountry.BackColor = Color.Azure;

}

 

3. Next comes the click event handler for the hide country button. Here, the button will toggle the operation between hide and show of country group box. The button label also toggled between Show/Hide.

 

private void btnHideShowCountry_Click(object sender, EventArgs e)

{

    //Groupbox 04: Hide the Country Container

    if(btnHideShowCountry.Text == "Hide Country" )

    {

        grpCountry.Visible = false;

        btnHideShowCountry.Text = "Show Country";

    }

    else

    {

        grpCountry.Visible = true;

        btnHideShowCountry.Text = "Hide Country";

    }

}

 

4. The handler for the set font button will bring the font dialog and sets the font for the country group box. All the radio buttons inside the country group box take the font that we set to the group box control.

 

private void btnFontVerdana_Click(object sender, EventArgs e)

{

    //Groupbox 05: Set a different font to the Country

    FontDialog fnt = new FontDialog();

    if (fnt.ShowDialog() == DialogResult.OK)

    {

        grpCountry.Font = fnt.Font;

    }

}

 

4.  Closing notes

 

Note that all the control inside the container will inherit the properties from the container. Here I shown you some simple properties like Enable, Visible, Font etc that we set on the container is inherited by the controls in it.

 

If you want set a different, say for example, different font for a specific control, then setting the property for that specific control overrides the one taken from the container.

 

In the Above Example:

 

1. Both the group boxes and the Enable actions check boxes belongs to the top-level container the form. So they inherit the properties from the form. In our example, I have overridden that to the group box control by setting my own properties that is a different color.

 

2. The group boxes which is a control for the top-level container the form is also a container for the control that it groups.

 

Now when you do set the properties at runtime always remember the Order:

 

1. Set the Properties for the Container and then override whatever you want for the control.

2. Let me assume that I need different backcolor at runtime for the Form, the group boxes and for the control Hide Country. In this case, your workflow should set the property for the form first and then for the Group box and finally for the Hide Country button.

Login to add your contents and source code to this article
share this article :
post comment
 
Nevron Gauge for SharePoint
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Team Foundation Server Hosting
Become a Sponsor