Events 断开Lua中的事件
我正在阅读LuaInterface教程的一部分,发现可以通过执行以下类似操作将事件与函数关联:Events 断开Lua中的事件,events,lua,disconnect,luainterface,Events,Lua,Disconnect,Luainterface,我正在阅读LuaInterface教程的一部分,发现可以通过执行以下类似操作将事件与函数关联: button.Click:Add(function() MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK) end) 现在,考虑到这一点,有人知道我将如何删除事件处理程序吗?假设我只想断开上面的一个。我该怎么做?可能.Net API有办法删除回调或完全重置按钮。你应该寻找那种方法 同时,这里有一个Lua独有的丑陋的黑客
button.Click:Add(function()
MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK)
end)
现在,考虑到这一点,有人知道我将如何删除事件处理程序吗?假设我只想断开上面的一个。我该怎么做?可能.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全局-删除“本地”-可能需要将其设置为showMessageWhenButtonClicked全局)
但这是非常粗糙和野蛮的。除非您没有时间浏览.Net文档,否则不要使用它,因为您正在编写代码以挽救生命。首先必须命名函数:
function button_Click(sender, e)
然后可以设置此函数来处理事件:
button.Click:Add(button_Click) -- Add event handler
button.Click:Remove(button_Click) -- Remove event handler.
我不熟悉用于管理按钮的.NETAPI。您知道如何在C#中添加和删除单击事件的回调吗?代码应该非常相似。