Member 12288840 Ответов: 1

Почему я не могу вывести на передний план C# windows aplication


Здравствуйте, я пытаюсь в проекте C# Windows Form вывести открытую форму наверх, открытую из меню Tool Strip, звуковой сигнал и замок.
Может ли кто-нибудь помочь мне с этой проблемой?
Дэвид.
private void openFlToolStripMenuItem_Click(object sender, EventArgs e)
{
  Application.OpenForms["MainForm"].BringToFront();
}

private void positionsBalanceToolStripMenuItem_Click(object sender, EventArgs e)
{
  Positions_Balance p_b = new Positions_Balance();
  p_b.ShowDialog();
  p_b.BringToFront();
}

private void ordersToolStripMenuItem_Click(object sender, EventArgs e)
{
  Orders o = new Orders();
  o.ShowDialog();
  o.BringToFront();
}

private void symbolLookupToolStripMenuItem_Click(object sender, EventArgs e)
{
  Symbol_Lookup s_l = new Symbol_Lookup();
  s_l.ShowDialog();
  s_l.BringToFront();
}


Что я уже пробовал:

Я попробовал то , что нашел, но это не тот исходный код C#.

Kornfeld Eliyahu Peter

Вы имеете в виду сделать только что открытую форму окном верхнего уровня?

Member 12288840

Где гуру, я просто удаляю диалог, только Show (): Work fine

1 Ответов

Рейтинг:
2

OriginalGriff

Когда вы вызываете ShowDialog в форме, он создает так называемый модальный диалог - это означает, что он переопределяет все существующие формы в приложении, и они не реагируют на ввод пользователя до тех пор, пока новая форма не будет закрыта. До тех пор вы не можете установить какую-либо другую форму в качестве "передней" формы, потому что именно она будет получать ввод с клавиатуры.

Из примера кода, который вы показываете, вы, кажется, уже имеете модальные диалоги - и они действительно не существуют как формы к тому времени, когда вы вызываете BringToFront на них, поскольку они должны быть закрыты, чтобы вернуть управление исходному коду после вызова ShowDialog.