.net 从F中的事件处理程序获取按钮文本#
如何在buttonClick事件处理程序中获取单击的按钮文本.net 从F中的事件处理程序获取按钮文本#,.net,f#,functional-programming,.net,F#,Functional Programming,如何在buttonClick事件处理程序中获取单击的按钮文本 let buttonClick args = let rnd = new Random() //MessageBox.Show(button.Text) let r, g, b = rnd.Next(256), rnd.Next(256), rnd.Next(256) form.BackColor <- Color.FromArgb(r, g, b) for x = 0 to 3 do for y = 0
let buttonClick args =
let rnd = new Random()
//MessageBox.Show(button.Text)
let r, g, b = rnd.Next(256), rnd.Next(256), rnd.Next(256)
form.BackColor <- Color.FromArgb(r, g, b)
for x = 0 to 3 do
for y = 0 to 3 do
let button = new Game15Button(new Point(x, y))
button.Size <- new Size(50, 50)
button.Click.Add(buttonClick)
form.Controls.Add(button)
let按钮单击args=
设rnd=new Random()
//MessageBox.Show(按钮.文本)
设r,g,b=rnd.Next(256),rnd.Next(256),rnd.Next(256)
form.BackColor您可以将按钮单击
函数更改为获取两个参数,其中添加的参数将是调用者知道的按钮文本。但是现在您不能将此函数指定为按钮单击的eventhandler,因为它只需要获取1个参数。一种解决方案是使用带有1个参数的lambda函数调用带有按钮文本的按钮单击
函数,并将其参数作为第二个参数传递
将eventhandler更改为
let buttonClick text args =
let rnd = new Random()
MessageBox.Show(text)
let r, g, b = rnd.Next(256), rnd.Next(256), rnd.Next(256)
form.BackColor <- Color.FromArgb(r, g, b)
您似乎是一个C#dev。一个普遍的提示是,在C#和F#@JohnPalmer中,一切都以完全相同的方式工作。我可以在C#中使用sender参数,var button=(button)sender;但在F#中只有一个EventArgs参数
button.Click.Add(fun args -> buttonClick button.Text args)