Значок на панели задач открывает неправильную активную форму - PullRequest
0 голосов
/ 06 июня 2019

У меня странное поведение с моим приложением, при котором при переходе между веб-браузером (или любым другим приложением) и повторным нажатием в приложении появляется неправильное сообщение Form? Таким образом, пользователь буквально должен использовать окно Tab, чтобы открыть правильный Form.

Например, Form1 является основной формой. Пользователь нажимает кнопку, которая открывает Form2. Form1 скрыт за сценой, а Form2 открывается. Теперь, если пользователь переходит на другое приложение, например браузер и клики обратно в приложение Form1 отображается, и нет другого способа вернуться к Form2 без окна вкладок?

Я использовал свойство .ShowDialog() при открытии Form2, которое отключало родительскую форму Form1, но все еще иногда делает это?!?

Я также установил ShowInTaskBar для формы 2 на False, чтобы на панели задач был один значок для всех форм.

Не совсем уверен, что может вызвать такое поведение?

private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.ShowDialog();
}

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Я думаю, вам нужно сообщить Form2, кто является ее владельцем.

Как это:

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.Owner = this;
        form2.ShowDialog();
    }

см. System.Windows.Forms для получения дополнительной информации

0 голосов
/ 07 июня 2019

Когда вы открываете form2, вам нужно установить mdiParent для form1.

Сначала установите для свойства form1 значение «isMdiParent», равное «true», а затем используйте следующий код:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.MdiParent = this;
    form2.Show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...