Condividi tramite


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

Restituisce un nuovo evento che genera una selezione di messaggi dall'evento originale. La funzione di selezione trasforma un messaggio originale in un nuovo messaggio facoltativo.

Percorso spazio dei nomi/modulo: 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

Parametri

  • chooser
    Tipo: 'T -> 'U option

    Funzione per selezionare e trasformare i valori degli eventi da passare.

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

    Evento di input.

Valore restituito

Evento che viene generato solo quando il parametro chooser restituisce Some.

Note

Questa funzione è denominata Choose negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio .NET diverso da F# o tramite reflection.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la funzione Event.choose. In questo esempio, la funzione viene utilizzata per selezionare solo gli eventi quando il pulsante del mouse è premuto. Allo stesso tempo, la funzione trasforma i dati di input del tipo MouseEventArgs in un formato più conveniente, una tupla di due integer che rappresenta la posizione corrente del mouse.

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

Piattaforme

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Control.Event (F#)

Spazio dei nomi Microsoft.FSharp.Control (F#)

Cronologia delle modifiche

Data

Cronologia

Motivo

Settembre 2010

Aggiunto esempio di codice.

Miglioramento delle informazioni.