Condividi tramite


IToggleProvider.Toggle Metodo

Definizione

Scorre gli stati di attivazione o disattivazione di un controllo.

public:
 void Toggle();
public void Toggle ();
abstract member Toggle : unit -> unit
Public Sub Toggle ()

Esempio

Nell'esempio seguente viene illustrata una possibile implementazione di questo metodo per un controllo personalizzato che può essere disattivato.

/// <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();
    }));
}
''' <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>
Private Sub Toggle() Implements IToggleProvider.Toggle
    Dim toggleState As ToggleState = customControl.toggleStateColor(customControl.controlColor)
    ' Invoke control method on separate thread to avoid clashing with UI.
    ' Use anonymous method for simplicity.
    Me.customControl.Invoke(New MethodInvoker(Sub()
                                                  If toggleState = Windows.Automation.ToggleState.On Then
                                                      customControl.controlColor = Color.Red
                                                  ElseIf toggleState = Windows.Automation.ToggleState.Off Then
                                                      customControl.controlColor = Color.Yellow
                                                  ElseIf toggleState = Windows.Automation.ToggleState.Indeterminate Then
                                                      customControl.controlColor = Color.Green
                                                  End If
                                                  customControl.Refresh()
                                              End Sub))
End Sub

Commenti

Un controllo deve eseguire il ciclo attraverso gli stati di attivazione in questo ordine: On, Offe (se supportato). Indeterminate

Si applica a

Vedi anche