我正在阅读LuaInterface教程(here)的一部分,并发现您可以通过执行与此类似的操作将事件与函数相关联:
button.Click:Add(function()
MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK)
end)
现在,考虑到这一点,是否有人知道如何删除事件处理程序?说我只想断开上面的那个。我该怎么做?
答案 0 :(得分:2)
.Net API可能有一种方法可以完全删除回调或重置按钮。你应该寻找那种方法。
与此同时,这是一个Lua唯一的丑陋黑客应该有效:
local showMessageWhenButtonClicked = true
button.Click:Add(function()
if showMessageWhenButtonClicked then
MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK)
end
end)
如果要停用消息,只需执行
showMessageWhenButtonClicked = false
(您可能需要将showMessageWhenButtonClicked设为全局 - 删除“本地” - 如果您要在其他范围内停用它 - 例如,在另一个文件中)。
但这非常粗暴和野蛮。除非您没有时间浏览.Net文档,否则请不要使用它,因为您正在编码以挽救您的生命。
答案 1 :(得分:0)
首先,您必须为该功能命名:
function button_Click(sender, e)
然后您可以设置此功能来处理事件:
button.Click:Add(button_Click) -- Add event handler
button.Click:Remove(button_Click) -- Remove event handler.