Поделиться через


Функция Event.filter<'T,'Del> (F#)

Возвращает новое событие, ожидающее первоначальное событие и вызывающее результирующее событие, только когда аргумент события передает указанную функцию.

Пространство имен/путь к модулю: Microsoft.FSharp.Control.Event

Сборка: FSharp.Core (в FSharp.Core.dll)

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

// Usage:
Event.filter predicate sourceEvent

Параметры

  • predicate
    Тип: 'T ->bool

    Функция, предназначенная для определения триггеров события, которые следует распространить.

  • sourceEvent
    Тип: IEvent<'Del,'T>

    Входное событие.

Возвращаемое значение

Событие, которое передает только значения, прошедшие предикат.

Заметки

В скомпилированных сборках имя этой функции — Filter.При обращении к функции из языка, отличного от F#, или посредством отражения следует использовать это имя.

Пример

В следующем примере кода показано, как использовать функцию Event.filter.В этом примере события мыши передаются только тогда, когда указатель мыши находится в определенной области.

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) )

Платформы

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

Сведения о версии

Основной версии библиотеки F#

Поддерживается в: 2.0, 4.0, портативное

См. также

Ссылки

Модуль Control.Event (F#)

Пространство имен Microsoft.FSharp.Control (F#)