Детское окно Winforms исчезает позади владельца - PullRequest
2 голосов
/ 16 марта 2012

У меня есть приложение winforms MDI, в котором всплывающее диалоговое окно, которое является «дочерним» для формы MDI, выглядит так:

  AddPartsForm partsForm = new AddPartsForm( );
  partsForm.StartPosition = FormStartPosition.CenterParent;
  DialogResult result = partsForm.ShowDialog( this );

Как вы можете видеть, я пытался как центрировать диалог внутри его родителя, так и установить, кто является родителем. Это вообще работает. Само диалоговое окно представляет собой форму с выпадающим списком, из которого можно выбрать то, что заполняет сетку в той же форме. Время от времени загрузка сетки занимает до десяти секунд.

Во время загрузки я стараюсь не двигать мышью и не нажимать на что-либо. Тем не менее, очень часто (но не всегда), когда сетка загружается, диалог «исчезает» за формой, которая его назвала. Я могу найти его в системном трее, но я хочу, чтобы этого не произошло. Должно быть соглашение между родителями / детьми или владельцами / детьми, которое используется всеми, и я пропустил его, потому что я не вижу такого поведения в большинстве программ, которые я использую.

...