Как перенести окно приложения на передний план? Например, мое приложение нуждается в внимании.
Это для моей личной программы. Мне нужна эта функциональность.
Это то, что я получил. Но он НЕ работает 100% раз.
public void BringToFrontToEnterCaptha()
{
if (InvokeRequired)
{
Invoke(new Action(BringToFrontToEnterCaptha));
}
else
{
this.TopMost = true;
this.Focus();
this.BringToFront();
this.textBox1.Focus();
this.textBox1.Text = string.Empty;
System.Media.SystemSounds.Beep.Play();
}
}
public void BringToBackAfterEnterCaptha()
{
if (InvokeRequired)
{
Invoke(new Action(BringToBackAfterEnterCaptha));
}
else
{
this.TopMost = false;
}
}
И я вызываю их из фонового рабочего.
BringToFrontToEnterCaptha();
while (!ready)
{
Thread.Sleep(100);
}
BringToBackAfterEnterCaptha();
Thread.Sleep(300);
И после нажатия кнопки "Принять" bool ready имеет значение true.
Я отлично работаю, но не всегда.