У меня есть Split Container, у которого есть Panel 1 (слева, с меню) и Panel 2 (справа, где я загружаю дочерние формы), в меню у меня есть кнопка, которая открывает новую дочернюю форму.Он допускает только один экземпляр окна за раз, но не дублирует его.
Последняя открытая форма всегда остается перед Panel 2, даже если фокус находится на форме сзади.
Как мне перевести заднюю часть вперед, когда я фокусирую на нем элемент управления?
Функция, открывающая форму
private void AddFormInPanel(object formChild)
{
Form fh = formChild as Form;
Form existe = Application.OpenForms.OfType<Form>().Where(pre => pre.Name == fh.Name.ToString()).SingleOrDefault<Form>();
if (existe == null)
{
fh.TopLevel = false;
this.splitContainer.Panel2.Controls.Add(fh);
this.splitContainer.Panel2.Tag = fh;
fh.BringToFront();
fh.Show();
}
}
Вызов функции
private void buttonForm1_Click(object sender, EventArgs e)
{
AddFormInPanel(new Form1());
}
private void buttonForm2_Click(object sender, EventArgs e)
{
AddFormInPanel(new Form2());
}
В этом примере я сфокусировал текстовое поле «Имя», но форма все еще в обороте.Пример: https://imgur.com/6jsWIgi