Показать «родительскую» форму в нормальном состоянии

#.net #winforms

#.net #winforms

Вопрос:

Когда я выполняю этот код:

 this.WindowState = FormWindowState.Minimized;
_fullscreenForm.Show();
_fullscreenForm.Focus();
  

Я получаю свернутое текущее окно, и _fullscreenForm также создается свернутое. Как я должен показывать ее в обычном состоянии?

Обновить:

Очевидно, я пытался добавить _fullscreenForm.WindowState = FormWindowState.Maximized; , но это не сработало.

ОБНОВЛЕНИЕ 2:

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

  1. Скрыть текущую форму
  2. Проделать некоторую работу
  3. Показать другую форму с результатами

ОТВЕТ:

Форма появилась за окном VS, поэтому нам нужно Activate() это.

Комментарии:

1. Можете ли вы опубликовать, в каком событии это должно произойти. Какова связь между this и _fullscreenForm . Также вы пытались установить для _fullscreenForm.WindowState свойства значение FormWindowState.Normal ?? Что вы получаете и что вы хотите получить.

2. @ja72: хм, событие? Мне нужно, чтобы _fullscreenForm была показана после вызова моего кода. Я получаю _fullscreenForm свернутую (как я сказал в моем вопросе). «Какова связь между этим и _fullscreenForm» — насколько это важно? _fullscreenForm это просто частное свойство текущей формы.

Ответ №1:

Попробуйте показать _fullscreenForm перед сворачиванием текущей формы.

 _fullscreenForm.Show();
this.WindowState = FormWindowState.Minimized;
_fullscreenForm.WindowState = FormWindowState.Normal;
_fullscreenForm.Focus();
  

Редактировать:

используя ваш исходный код, попробуйте

 this.WindowState = FormWindowState.Minimized;
_fullscreenForm.Show();
_fullscreenForm.TopMost = true;
_fullscreenForm.Focus();
  

Комментарии:

1. Этот код предоставляет нам другой рабочий процесс: показать скрыть . Но мне это нужно строго в порядке, который я описал: 1) Мы скрываем форму 2) Мы выполняем некоторую полезную работу 3) Мы показываем другую форму с результатами.

2. @zerkms при запуске исходного кода _fullscreenForm обычно отображается после сворачивания текущей формы, но если у вас запущен visual studion, форма находится за ней. Попробуйте минимизировать VS, прежде чем пробовать это.

3. Я выбрал Activate() . Спасибо за ваше время.

Ответ №2:

Это происходит потому, что Windows загружает новые окна из свернутых программ, также свернутых. Поэтому просто установите WindowState of _fullscreenForm в Maximized или Normal сразу после Show()

Комментарии:

1. Мне не нужно, чтобы она была развернута , мне нужен ее обычный размер.

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

3. что такое «дочерняя форма»? Я могу вернуть ее на экран с помощью мыши, щелкнув на панели задач.