2015-03-19 1 views
0

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

Это происходит только в том случае, если у меня есть один из дочерних (дочерних) типов (не являющихся технически дочерними MDI), открытых для отображения состояния задачи, инициированной пользователем.

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

Любые идеи, что может быть причиной?

EDIT: Попытка разработать немного. Проблема в том, что я запустил приложение вверх &, откройте другую программу (Excel, Chrome и т. Д.), И это новое окно появится поверх моего приложения. Затем я нажимаю значок своего приложения на панели задач. Похоже, что фокус, но окно не перемещается вперёд, Excel (или что-то еще) все еще находится поверх него. Единственный способ увидеть мое приложение - это минимизировать/закрыть любые другие программы, запущенные на этом экране.

+0

Я не понимаю .. но проверьте, является ли ваша «детская форма» модальной и ждет какого-либо действия. – CristiC777

+0

Форма, безусловно, модальная (вызов с ShowDialog), поскольку я не хочу, чтобы пользователь мог что-либо сделать иначе пока окно состояния открыто. Отредактировал мой первоначальный вопрос, чтобы попытаться прояснить проблему. – JMichael

+0

Хм, нужно немного подправить приложение, чтобы сделать статус более значимым в одном особенно продолжительном случае использования. Во всяком случае, не уверен, что это косвенно результат изменений, которые я сделал (сомнительно), или вчера у меня был гремлин, но теперь я могу заставить окно двигаться вперед, как и ожидалось. Если у кого-то есть идеи, которые могли бы вызвать это, мне все равно хотелось бы услышать. Гремлины, как правило, возвращаются, и «фиксированный косвенно» в моем опыте означает «вероятно, не фиксированный во всех случаях». – JMichael

ответ

0

использование в виде конструктора

Form1.Topmost = True 

Смотрите соответствующий MSDN.
Верхняя форма представляет собой форму, которая перекрывает все другие (не самые верхние) формы, даже если это не форма активного или переднего плана. Самые верхние формы всегда отображаются в самой высокой точке в z-порядке окон на рабочем столе. Вы можете использовать это свойство для создания формы, которая всегда отображается в вашем приложении, например, окна «Найти и заменить».

+0

Я получаю то, что вы получаете, но проблема заключается не в том, что форма никогда не отображается наверху (она правильно находится сверху, когда она открывается). – JMichael

+0

(не разрешил мне редактировать мой оригинальный комментарий). Проблема заключается в том, что приложение восстанавливает фокус, он не перемещается в начало других приложений, у которых не было TopMost = True (т.е. почти все, кроме TaskManager) – JMichael

+0

https://support.microsoft.com/en-us/kb/169494 >> «После того, как вы минимизируете программу, нажатие кнопки программы на панели задач может не восстановить или максимизировать программу. Если вы используете правую кнопку мыши, чтобы щелкнуть кнопка программы на панели задач, команда «Восстановить» или «Максимизировать» доступны в контекстном меню для программы ». – CristiC777