Конечно, приведение окна на передний план может быть легко достигнуто с помощью API SetForegroundWindow. Но это связано с использованием пространства имен System.Runtime.InteropServices и, таким образом, включая неуправляемый код в вашем приложении. Более простой подход - это трюк, который я нашел, ища способ сделать это.
Это так же просто, как установка TopMost
формы нашей формы на true
, а затем сразу же установите ее на false
.
Установка его на true
определит операционную систему, чтобы показать ее поверх любых других окон, независимо от того, фокусируется она или нет. И затем мы восстанавливаем поведение по умолчанию, установив свойство обратно на false
: окно перейдет на задний план, если другое приложение получит фокус, и, таким образом, выйдет на передний план.
Итак, вставьте следующий фрагмент кода везде, где требуется такая функциональность:
this.TopMost = true;
this.TopMost = false;
Аккуратный трюк, чтобы сэкономить много строк кода!
Это также придало бы ему фокус, поэтому, если вы не возражаете потерять фокус из другого окна. Это должно сработать. –