我正在阅读 LuaInterface Tutorial (here)的一部分,发现您可以通过执行类似的操作将事件与函数关联:
button.Click:Add(function()
MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK)
end)
现在,考虑到这一点,有人知道我将如何删除事件处理程序吗?假设我只想断开上面的连接。我该怎么做?
我正在阅读 LuaInterface Tutorial (here)的一部分,发现您可以通过执行类似的操作将事件与函数关联:
button.Click:Add(function()
MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK)
end)
现在,考虑到这一点,有人知道我将如何删除事件处理程序吗?假设我只想断开上面的连接。我该怎么做?
.Net API 可能有办法删除回调或完全重置按钮。你应该寻找那个方法。
与此同时,这里有一个 Lua-only 丑陋的 hack 应该可以工作:
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 文档,否则不要使用它,因为您正在编写代码以挽救生命。
首先你必须命名函数:
function button_Click(sender, e)
然后你可以设置这个函数来处理事件:
button.Click:Add(button_Click) -- Add event handler
button.Click:Remove(button_Click) -- Remove event handler.