2011-12-14 7 views
1

я читал часть LuaInterface Учебник (here) и обнаружил, что вы можете связать событие с функцией делать что-то похожее на это:Отключить событие в Lua

button.Click:Add(function() 
    MessageBox.Show("We wuz clicked!",arg[0],MessageBoxButtons.OK) 
end) 

Теперь, с учетом этого , кто-нибудь знает, как удалить обработчик событий? Скажем, я просто хочу отключить выше. Как мне это сделать?

+0

Я не знаком с .net API для управления кнопками. Знаете ли вы, как добавлять и удалять обратный вызов в событии click на C#? Код должен выглядеть очень похожим. – kikito

ответ

2

Возможно, API .Net имеет возможность удалить обратные вызовы или полностью сбросить кнопку. Вы должны искать этот метод.

В то же время, вот 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 global - удаление «local» - если вы собираетесь деактивировать его в другой области - например, в другом файле).

Но это очень грубо и грубо. Не используйте его, если у вас нет времени на просмотр документации .Net, потому что вы кодируете, чтобы сохранить свою жизнь.

0

Сначала вы должны назвать функцию:

function button_Click(sender, e) 

Тогда вы можете установить эту функцию для обработки событий:

button.Click:Add(button_Click) -- Add event handler 

button.Click:Remove(button_Click) -- Remove event handler. 
Смежные вопросы