2017-01-24 7 views
0

Когда я открываю форму через Form.Show(), Show Event открытой формы не поднимается.Form.Load Событие, не возникающее при использовании формы. Показывается, но при использовании Form.ShowDialog

Но когда я использую Form.ShowDialog(), событие поднято, и моя точка останова попала в мой метод Form_Shown.

Я видел this answer, что исключение скрывает событие, но я не получаю исключения.

Итак, почему Событие поднято, когда я звоню ShowDialog(), но нет, если я звоню Show()?

Адрес link to a demo. Когда я нажимаю кнопку ShowDialog(), я вижу сообщение с загрузкой и показанным событием, но для Show() я вижу только событие загрузки.

+1

Вы должны показать нам код - вы это знаете. – LarsTech

+0

@ LarsTech какой код? эти 2 строки? добавить обработчик события и вызвать Show()? Это не имеет смысла и вызывает закрытие как оффтопный «почему мой код не работает» – magicandre1981

+2

Потому что происходит что-то еще. Почтовый код, который будет дублировать проблему. – LarsTech

ответ

1
using (var form = new Form2()) 
{ 
    form.Show(); 
} 

Блок «Использование» будет удалять вашу форму сразу же после того, как Show не будет блокировать код. ShowDialog блокирует код до тех пор, пока форма не будет закрыта, поэтому эта версия будет работать.

+0

Я также пробовал его без «использования», и он все еще не работает. – magicandre1981

+0

@ magicandre1981 Снова опубликуйте этот код в своем вопросе (не другой демонстрационный проект). Когда я удаляю используемый блок, я получаю загруженные и показанные сообщения, и форма появляется – LarsTech

+0

ok, я вызывал Dispose слишком быстро, что аналогично использованию. Мне нужно отправить данные в form1, где отображается отображаемое событие, и удалять форму после получения обратной связи из формы2. – magicandre1981

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

  • Нет связанных вопросов^_^