2016-10-25 2 views
0

У меня проблема с самым высоким уровнем, найдено решение, которое «работает», но это выглядит не так хорошо. Есть ли еще один «более чистый» способ решить эту проблему? Вот мой код: комментарии к событию в коде.C# mainui падает за другими окнами, проблема с topmost

OrderTemplateView template; 
private void toolStripButton4_Click(object sender, EventArgs e) 
    { 
     if (template != null) 
     { 
      template.Close(); //must close to trigger close event. 
      template.Dispose(); 
     } 
     mainUi.TopMost = true; // must set my mainUi topMost here othervise it drops in the background of other windows open at the computer. 
     template = new OrderTemplateView(this); 
     template.TopMost = true;// must set my dialog topmost othervise it drops behind my mainUi 
     template.StartPosition = FormStartPosition.CenterParent; 
     mainUi.TopMost = false;//must release my topmost so other windows on the computer can be called to front. 
     template.TopMost = false; 
     template.ShowDialog(); 
    } 

Обновленный код, который выполняет ту же работу:

private void toolStripButton4_Click(object sender, EventArgs e) 
    { 
     if (template != null) 
     { 
      template.Close(); 
      template.Dispose(); 
     } 
     template = new OrderTemplateView(mainUi); 
     template.StartPosition = FormStartPosition.CenterParent; 
     template.ShowDialog(mainUi); 
    } 

`

ответ

0

Вместо установки TopMost, попробуйте следующее:

  1. Удалить все ваши ссылки на TopMost

  2. Звонок mainUi.BringToFront()

  3. Звоните template.ShowDialog(mainUi), отметив, что родительский элемент управления передан в диалоговое окно.

+0

Удалить все ссылки на 'TopMost', а затем вызвать' mainUi.BringToFront() ', а затем вызвать' template.ShowDialog (mainUi) '- обратите внимание, я передаю mainUi для вызова ShowDialog(). – LordWilmore

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/14089033) – pylover

+0

@pylover Я обновил ответ, чтобы быть правильным ответом. Приветствия для исправления. – LordWilmore