#.net #winforms
#.net #winforms
Вопрос:
Когда я выполняю этот код:
this.WindowState = FormWindowState.Minimized;
_fullscreenForm.Show();
_fullscreenForm.Focus();
Я получаю свернутое текущее окно, и _fullscreenForm
также создается свернутое. Как я должен показывать ее в обычном состоянии?
Обновить:
Очевидно, я пытался добавить _fullscreenForm.WindowState = FormWindowState.Maximized;
, но это не сработало.
ОБНОВЛЕНИЕ 2:
Нет, мы не можем изменить порядок сворачивания текущей формы и появления другой, потому что между этими строками будет некоторая работа, поэтому нам буквально нужно:
- Скрыть текущую форму
- Проделать некоторую работу
- Показать другую форму с результатами
ОТВЕТ:
Форма появилась за окном 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. что такое «дочерняя форма»? Я могу вернуть ее на экран с помощью мыши, щелкнув на панели задач.