При сворачивании ( Hide() ) формы свойство IsHandleCreated становится false

Roma_Nok

При сворачивании ( Hide() ) формы свойство IsHandleCreated становится false, хотя значение Handle остается, но меняется. Нужно понять при использовании this.InvokeRequired, что форма не удалена и не находится в процессе удаления. Делаю проверку :
if(!this.IsHandleCreated || this.Disposing || this.IsDisposed)
return;
5 ответов

Roma_Nok

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


Roma_Nok

Парадокс в том, что в приложении есть другая форма, которая также скрывается, но ее IsHandleCreated остается равным true.


Roma_Nok

Парадокс в том, что в приложении есть другая форма, которая также скрывается, но ее IsHandleCreated остается равным true.
Значит тем более никто кроме тебя не увидит что там в коде у двух форм разного.Ищи почему меняется дескриптор.


Roma_Nok

Кажисть разобрался. Дело вот в чем. В приложении MDI у формы с установленным свойством MdiParent при сворачивании уничтожается Handle, а у форм более низкого уровня нет.


Roma_Nok

Вернее при скрытии формы (Hide)