如何在按钮单击事件处理程序中获取单击的按钮文本?
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)
答案 0 :(得分:1)
您可以将buttonClick
函数更改为获取2个参数,其中添加的参数将是调用者知道的按钮文本。但是现在你不能将此函数指定为按钮单击的事件处理程序,因为它只需要获取1个参数。一种解决方案是使用带有1个参数的lambda函数,该函数使用按钮文本调用buttonClick
函数,并将其参数作为第二个参数传递。
将您的事件处理程序更改为
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)
以及将处理程序分配给点击的行
button.Click.Add(fun args -> buttonClick button.Text args)