2013-04-19 2 views
-4

Im делает лабиринт, и я хочу, чтобы моя кнопка «уровня 2» (в основной форме) включалась, когда игрок заканчивает уровень 1 (в форме 1). Итак, что мне делать?Как включить кнопку в одной форме из другой?

+1

Как вы создаете и показываете 'форму 1'? Можете ли вы опубликовать код для этого бита? –

+3

'MainForm.Level2Button.Enabled = true;' –

+1

Доступ к другой форме ничем не отличается от доступа к любому другому объекту на C#. Если методы/поля являются общедоступными, и у вас есть экземпляр, ссылка на экземпляр или эти поля являются статическими, то вы можете использовать их так же, как и любые другие свойства/методы класса. Это может быть не самая лучшая практика (idk, потому что я не работаю над глупыми формами :), но это работает. – evanmcdonnal

ответ

2

Создать новое событие на LevelForm, такие как:

public event Action LevelCompleted; 

Огонь это событие, когда завершается уровень:

//run this code as soon as you know the level is completed 
if(LevelCompleted != null) 
    LevelCompleted(); 

Тогда есть главная форма подписки на это событие и сделать. .. независимо от того, когда уровень завершен:

level1Form.LevelCompleted +=() => level2Button.Enabled = true; 
+0

+1 более короткий ответ на этот бесконечный вопрос – Steve

Смежные вопросы