Partager via


Event.choose<'T,'U,'Del>, fonction (F#)

Retourne un nouvel événement qui déclenche une sélection de messages à partir de l'événement d'origine.La fonction de sélection transfère le message d'origine dans un nouveau message facultatif.

Espace de noms/Chemin du module : Microsoft.FSharp.Control.Event

Assembly : FSharp.Core (in FSharp.Core.dll)

// Signature:
Event.choose : ('T -> 'U option) -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)

// Usage:
Event.choose chooser sourceEvent

Paramètres

  • chooser
    Type : 'T -> 'Uoption

    Fonction utilisée pour sélectionner et transformer des valeurs d'événement à transmettre.

  • sourceEvent
    Type : IEvent<'Del,'T>

    Événement d'entrée.

Valeur de retour

Événement qui se déclenche uniquement lorsque le sélecteur en retourne Some.

Notes

Cette fonction se nomme Choose dans les assemblys compilés.Si vous accédez à la fonction à partir d'un langage .NET autre que F# ou par réflexion, utilisez ce nom.

Exemple

L'exemple de code suivant montre comment utiliser la fonction Event.choose.Dans cet exemple, la fonction est utilisée pour sélectionner uniquement des événements lorsque le bouton de la souris est enfoncé.En même temps, la fonction transforme les données d'entrée de type MouseEventArgs dans un format plus pratique, un tuple de deux entiers qui représentent la position actuelle de la souris.

// When the mouse button is down, the form changes color
// as the mouse pointer is moved.

let form = new Form(Text = "F# Windows Form",
                    Visible = true,
                    TopMost = true)
form.MouseMove
    |> Event.choose(fun evArgs ->
        if (evArgs.Button <> MouseButtons.None) then
            Some( evArgs.X, evArgs.Y)
        else None)

    |> Event.add ( fun (x, y) ->
        form.BackColor <- System.Drawing.Color.FromArgb(
            x, y, x ^^^ y) )

Plateformes

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Informations de version

Versions de bibliothèque principale F#

Prise en charge dans : 2,0, 4,0, portables

Voir aussi

Référence

Control.Event, module (F#)

Microsoft.FSharp.Control, espace de noms (F#)