Как вывести на переднюю форму с фокусом в текстовое поле или любой другой элемент управления в этой форме - PullRequest
0 голосов
/ 10 июля 2019

У меня есть 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...