Вывод формы на передний план, когда она свернута на панели задач - PullRequest
1 голос
/ 18 января 2012

Есть ли способ вывести форму, которая уже свернута, на таксбар на фронт?Я попробовал приведенные ниже коды, но безуспешно:

        filterForm.Show();
        filterForm.Activate();
        filterForm.BringToFront();

PS: эта форма вызывается из другой формы, и пользователь делает некоторые вещи в ней, а затем может свести ее к минимуму.Я хочу, чтобы за один раз был открыт только один экземпляр этой формы, поэтому второй раз пользователь нажимает кнопку для отображения формы. Я проверяю, показана ли форма уже или нет, если отображается, я хочу, чтобы она была впереди:

public FilterForm filterForm;
public bool IsFilterFormActive;

private void tsOpenFilerForm_Click(object sender, EventArgs e)
{
    if (!IsFilterFormActive)
    {
        filterForm = new FilterForm();
        filterForm.FormClosing += delegate {
                                               IsFilterFormActive = false;
                                            };
        IsFilterFormActive = true;
        filterForm.Show();
    }
    else
    {
        filterForm.Show();
        filterForm.Activate();
        filterForm.BringToFront();
    }
}

Ответы [ 2 ]

8 голосов
/ 18 января 2012

Вы пропускаете экземпляр формы, лучше всего сделать его обратно равным нулю, когда он закрывается. Тебе тогда тоже не нужен бул. Как это:

    FilterForm filterForm;

    private void tsFilterForm_Click(object sender, EventArgs e) {
        if (filterForm == null) {
            filterForm = new FilterForm();
            filterForm.FormClosed += delegate { filterForm = null; };
            filterForm.Show();
        }
        else {
            filterForm.WindowState = FormWindowState.Normal;
            filterForm.Focus();
        }
    }
6 голосов
/ 18 января 2012

Добавьте filterForm.WindowState = FormWindowState.Normal; перед тем, как восстановить окно. Если его свести к минимуму, сначала нужно снова его поднять. Тогда filterForm.Activate() должно быть достаточно.

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