Adding a EventHandler function to button click event with sender as a parameter

StackOverflow https://stackoverflow.com/questions/22372063

  •  14-06-2023
  •  | 
  •  

質問

Adding a EventHandler function to button click event with sender as a parameter.

let ButtonClicked (evArgs)= 
     DoSomthing...

button.Click.Add(fun evArgs -> ButtonClicked())

Code Works But I want to somthing like this

let ButtonClicked (evArgs,sender)= 
     sender.DoSomthing()
     ...

button.Click.Add(fun evArgs,sender -> ButtonClicked())

Thanks for your help.

役に立ちましたか?

解決

You could do something like this:

let ButtonClicked evArgs sender =
    // Do something interesting here
    ()

button.Click.Add(fun evArgs -> ButtonClicked evArgs button)

他のヒント

EDIT: Full example. Paste this into the interpreter:

open System.Windows.Forms

let form = new Form(Text = "Form")
let button = new Button(Text = "Button") 
form.Controls.Add(button)

let ButtonClicked sender evargs = 
    printfn "From '%A' received '%A'" sender evargs
button.Click.AddHandler (new System.EventHandler(ButtonClicked))

Application.Run(form)
;;

(By the way, how cool is it you can just paste that into the interpreter?)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top