Partager via


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

Retourne un nouvel événement qui écoute l'événement d'origine et déclenche l'événement qui en résulte uniquement lorsque l'argument de l'événement passe la fonction donnée.

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

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

// Signature:
Event.filter : ('T -> bool) -> IEvent<'Del,'T> -> IEvent<'T> (requires delegate)

// Usage:
Event.filter predicate sourceEvent

Paramètres

  • predicate
    Type : 'T -> bool

    Fonction permettant de déterminer les déclencheurs de l'événement à propager.

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

    Événement d'entrée.

Valeur de retour

Événement qui passe uniquement des valeurs qui passent le prédicat.

Notes

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

Exemple

L'exemple de code suivant montre comment utiliser la fonction Event.filter. Dans cet exemple, les événements de souris sont passés uniquement lorsque le pointeur de la souris se trouve dans une certaine zone.

let form = new Form(Text = "F# Windows Form",
                    Visible = true,
                    TopMost = true)
form.MouseMove
    |> Event.filter ( fun evArgs -> evArgs.X > 100 && evArgs.Y > 100)
    |> Event.add ( fun evArgs ->
        form.BackColor <- System.Drawing.Color.FromArgb(
            evArgs.X, evArgs.Y, evArgs.X ^^^ evArgs.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#)