Как проверить, есть ли в форме открытые формы ShowDialog ()? - PullRequest
3 голосов
/ 21 мая 2010

У меня есть форма MainForm с несколькими свойствами / методами, доступ к которым осуществляется из другого потока.

В какой-то момент я мог бы открыть форму AuxForm с помощью ShowDialog (), а затем, пока эта модальная форма открыта, другой поток все еще изменяет свойства MainForm. Это все желаемое.

В одном из методов, доступных из другого потока, мне нужно выполнить некоторый код, но только если модальная AuxForm не открыта. Есть ли способ проверить это (используя свойства формы .NET WF) или мне нужно использовать переменную-флаг?

ПРИМЕЧАНИЕ. Ни одно из этих свойств / методов не изменяет элементы управления (поэтому Invoke не требуется).

Ответы [ 2 ]

3 голосов
/ 21 мая 2010

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

1 голос
/ 21 мая 2010

возможно это может помочь ... как только у вас появятся все открытые окна приложения, вы можете выполнить поиск в целевом окне. Вы можете определить, является ли форма модальной, проверив ее свойство Modal .

...