2013-06-18 2 views
1

У меня есть приложение C#, в котором мне нужна конкретная функция или функция для выполнения в форме после закрытия активной формы.Вызывать обработчик события в другой форме после закрытия активной формы

Форма, в которой мне нужен код для excute, становится активной формой после закрытия предыдущей активной формы. Итак, в двух словах после закрытия этой формы форма, в которой мне нужен обработчик или функция для запуска, станет активной формой. Есть ли способ, которым это возможно?

Я пробовал обработчик события Form_Enter в форме, которая активируется после закрытия другой формы, но это не сработало.

+0

Непонятно, почему вы думаете, что вам нужно помочь. Windows уже ищет другое окно в приложении, чтобы уделить внимание, когда ваше активное окно закрывается. Поскольку есть только один выбор, это окно под активным окном автоматически активируется. В противном случае вы сделали бы это явно, подписав событие FormClosing и вызвав метод Activate(). –

+0

сделал. Я попытался ввести код, который я хотел выполнить в обработчике события Form_Enter формы, которая становится активной формой после закрытия первой формы. – user1546315

+0

Я знаю, что Ханс, но мне нужен конкретный код для выполнения в форме, которая активируется после закрытия предыдущей активной формы. – user1546315

ответ

1

Я считаю, что вы можете достичь того, что вы пытаетесь сделать более просто. Код используется, чтобы показать Form2 из Form1 (Main), вы можете добавить свой код там примерно так:

Class Form1 { 
    private void button_click(object sender, EventArgs e) { 
     Form2 newForm = Form2(); 
     newForm.ShowDialog(); // To prevent the main form carry on 
     // Your code needed to be excuted 
    } 
} 
1

В случае формы закрытия установите DialogResult следующим образом:

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    this.DialogResult = System.Windows.Forms.DialogResult.Yes; 
} 

При открытии в форме найдите ответ следующим образом:

if (Form1.ShowDialog() == DialogResult.Yes) 
{ 
    ////do stuff. 
} 

Надеюсь, это поможет.

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