Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Sanya Black1993
2 / 0 / 7
Регистрация: 12.05.2012
Сообщений: 173
1

Как перед запуском новой формы проверить открыта ли форма?

26.01.2018, 18:49. Просмотров 2534. Ответов 3
Метки нет (Все метки)

Доброго времени суток. Как перед запуском формы проверить запущена ли она уже. Работаю с MDI контейнером.
Вот код на запуск формы, что мне нужно добавить для решения этой проблемы?
C#
1
2
3
                Form2 form2 = new Form2();
                form2.MdiParent = this;
                form2.Show();
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2018, 18:49
Ответы с готовыми решениями:

Как сделать чтобы перед запуском формы играла музыка
Подскажите пожалуйста, как сделать чтобы при открытии какой либо формы сразу проигрывала музыка?

Перед запуском приложения, проверить .NET Framework
Доброе время суток. Как реализовать проверку наличия нужного фрэймворка (либо вообще его...

Чтобы перед запуском формы проверялось одно условие, а именно запущено приложение с параметром или без
нужно сделать так, чтобы перед запуском формы проверялось одно условие, а именно запущено...

Как проверить, открыта ли форма?
Как проверить, открыта ли форма?

Как проверить открыта или закрыта форма, открытая НЕ модально?
Здравствуйте. Есть две формы: Form1 (главная форма) и Form2 (открывается из первой НЕ модально)....

3
Sternman
57 / 58 / 28
Регистрация: 10.01.2018
Сообщений: 357
Завершенные тесты: 2
26.01.2018, 19:07 2
Про какое-нибудь isShowed не знаю. по идее это должно работать
C#
1
2
3
4
5
6
 if (form2 == null || form2.IsDisposed)
      {
       form2= new Form2();
       form2.MdiParent = this;
       form2.Show();
      }
но мне кажется лучше просто блокировать процедуру повторного вызова формы и разрушать наверняка , если важно чтоб она была в единственном экземпляре.
0
netBool
317 / 298 / 171
Регистрация: 16.11.2010
Сообщений: 1,067
Записей в блоге: 9
Завершенные тесты: 5
26.01.2018, 19:17 3
Лучший ответ Сообщение было отмечено Sanya Black1993 как решение

Решение

Sanya Black1993, в вашем случае, думаю, проще как-то так:
C#
1
2
3
4
            if (this.MdiChildren.Any()) return;
            Form form2 = new Form();
            form2.MdiParent = this;
            form2.Show();
Но если телепатия не сработала, то
C#
1
form2.Name = "mdi";
C#
1
if (!Application.OpenForms.Cast<Form>().Any(f => f.Name == "mdi")) {/*запуск окна*/ }
1
Sanya Black1993
2 / 0 / 7
Регистрация: 12.05.2012
Сообщений: 173
26.01.2018, 19:31  [ТС] 4
netBool, благодарю вас. Всё отлично работает.
C#
1
2
3
4
 if (this.MdiChildren.Any()) return;
            Form form2 = new Form();
            form2.MdiParent = this;
            form2.Show();
0
26.01.2018, 19:31
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2018, 19:31

Как узнать, с какой формы открыта форма, активная сейчас
есть 3 формы Form1, Form2, Form3 На этих формах есть кнопка Adotable1.Append;...

Как узнать, с какой формы была открыта (Form*.ShowModal:) текущая форма
Доброго всем времени суток! Помогите, пожалуйста решить одну задачку: Проект для расчёта времени...

Проверить открыта ли форма
Мне нужно после нажатия одной кнопки проверить открыта ли форма и если да то закрыть если нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.