IToggleProvider.Toggle Method

Definition

Cycles through the toggle states of a control.

C#
public void Toggle();

Examples

The following example shows one possible implementation of this method for a custom control that can be toggled.

C#
/// <summary>
/// Toggles the control.
/// </summary>
/// <remarks>
/// For this custom control the toggle state is reflected by the color 
/// of the control. This is analogous to the CheckBox IsChecked property.
/// Green   - ToggleState.On
/// Red     - ToggleState.Off
/// Yellow  - ToggleState.Indeterminate
/// </remarks>
void IToggleProvider.Toggle()
{
    ToggleState toggleState =
        customControl.toggleStateColor[customControl.controlColor];
    // Invoke control method on separate thread to avoid clashing with UI.
    // Use anonymous method for simplicity.
    this.customControl.Invoke(new MethodInvoker(delegate ()
    {
        if (toggleState == ToggleState.On)
        {
            customControl.controlColor = Color.Red;
        }
        else if (toggleState == ToggleState.Off)
        {
            customControl.controlColor = Color.Yellow;
        }
        else if (toggleState == ToggleState.Indeterminate)
        {
            customControl.controlColor = Color.Green;
        }
        customControl.Refresh();
    }));
}

Remarks

A control must cycle through its toggle states in this order: On, Off, and (if supported) Indeterminate.

Applies to

Product Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

See also