Use a tristate CheckBox in C#

[tristate CheckBox]

Normally a CheckBox is either checked or unchecked. You can catch the CheckedChanged event handler to learn when the control’s value has changed and you can use its Checked property to get its current value.

A CheckBox can also display a third indeterminate state. For example, a program might use the three states to indicate that a group of options is selected (checked), not selected (unchecked), or some options are selected (indeterminate).

To do this, first set the ComboBox control’s ThreeState property to True. Next catch the control’s CheckStateChanged event instead of CheckedChanged. In the event, use the control’s CheckState property to see whether it is checked, unchecked, or indeterminate.

The following code shows how this example sets the lunch ComboBox control’s state to indeterminate when the program starts.

// Make lunch indeterminate.
private void Form1_Load(object sender, EventArgs e)
    chkLunch.CheckState = CheckState.Indeterminate;

The following code shows how the program displays CheckBox states in the program’s ListBox when the states change. The program uses the same event handler for all three CheckBox controls.

// Display the CheckBox's current state.
private void chkMeal_CheckStateChanged(object sender, EventArgs e)
    CheckBox chk = sender as CheckBox;
    lstState.Items.Add(chk.Text + ": " + chk.CheckState);

Download Example   Follow me on Twitter   RSS feed   Donate

This entry was posted in controls and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.