Form.ShowDialog () не показывает форму - PullRequest
2 голосов
/ 20 апреля 2010

Я столкнулся с ситуацией, когда я пытаюсь запустить простую строку кода в методе

Dim res As DialogResult = frmOptions.ShowDialog ()

но ничего не происходит. Диалоговое окно не появится. Если я запускаю этот метод из другого места в коде, он выполняется нормально (т. Е. Отображает форму в диалоговом режиме, а затем код выполняется нормально). Следовательно, это может быть способ, которым я получаю этот код, который вызывает мою проблему, но я не могу найти, что не так.

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

Любая идея, что может вызвать это, или то, что я должен искать, может вызвать проблему ??

Спасибо за помощь!

Ответы [ 2 ]

5 голосов
/ 20 апреля 2010

Проблема заключалась в том, что для активного окна, которое по умолчанию является владельцем диалогового окна, для свойства TopMost было установлено значение true. В результате диалоговое окно отображалось за окном владельца (TopMost).

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

Причина, по которой код работает в других случаях, заключается в том, что активное окно, когда диалоговое окно загружено, не имеет своего свойства TopMost, установленного в true, таким образом, отображая диалоговое окно, как и ожидалось.

0 голосов
/ 20 апреля 2010
  Dim frmOptions As New YourFormClass()
  Dim res As DialogResult = frmOptions.ShowDialog(me)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...