16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
1

Почему вторая форма не минимизируется?

17.07.2015, 19:42. Показов 488. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста,не могу понять.Есть код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        private void GameShowDialog()
        {
            if (check_full_scrin.Checked)
            {
                game.WindowState = FormWindowState.Maximized;
                game.ShowDialog();
            }
            if (!check_full_scrin.Checked)
            {
                game.WindowState = FormWindowState.Normal;
                game.ShowDialog();
            }
        }
 
        private void button_start_Click(object sender, EventArgs e)
        {
            GameShowDialog();
        }
 
        private void check_full_scrin_CheckedChanged(object sender, EventArgs e)
        {
            if (check_full_scrin.Checked)
            {
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState = FormWindowState.Maximized;
            }
            else
            {
                this.FormBorderStyle = FormBorderStyle.FixedSingle;
                this.WindowState = FormWindowState.Normal;
            }
        }
Вторая не хочет возвращаться в исходное состояние.Я не прав где-то или чего-то не знаю???
Очень благодарен буду за совет от умных людей!!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2015, 19:42
Ответы с готовыми решениями:

Почему не при запуске программы не отображается вторая форма?
Здравствуйте! Не могу понять почему не при запуске программы отображается только первое диалоговое...

Вторая форма
---Сразу говорю админам что та прога которую я делал, была просто шуткой:sorry: если интересует...

Вторая форма
Мне надо код для 2 формы в С#,и можете пожалуйста сказать как сделать чтоб сначала открывалось...

Не запускается вторая форма
Приветствую. Проверяю условие: private void avtorizaciy() { ...

10
Эксперт .NET
7796 / 5260 / 1252
Регистрация: 25.05.2015
Сообщений: 16,034
Записей в блоге: 14
17.07.2015, 20:02 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void check_full_scrin_CheckedChanged(object sender, EventArgs e)
        {
            if (check_full_scrin.Checked)
            {
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState = FormWindowState.Maximized;
            }
            else
            {
                this.FormBorderStyle = FormBorderStyle.FixedSingle;
                this.WindowState = FormWindowState.Normal;
            }
        }
Вот это у меня работает.
Причём тут диалог, не понятно.
Проект приложите минимальный, с демонстрацией эффекта.
0
16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
17.07.2015, 20:15  [ТС] 3
C#
1
game.WindowState = FormWindowState.Normal;
Это действие для второй формы(game).Есть чекбокс.если стоит флажок,то первая и вторая форма Maximized принимают,иначе должны принять Normal.Все хорошо в первой форме,флажек ставишь/убираешь соответственно Normal/Maximized с первой формой происходит,но вторая только Maximized выполняет,флажек снят на первой форме,а вторая форма(game) остается Maximized.
Вот так.

Добавлено через 2 минуты
И для понимания game.ShowDialog()
А как вы вызываете вторую форму мне очень интересно???
0
Эксперт .NET
7796 / 5260 / 1252
Регистрация: 25.05.2015
Сообщений: 16,034
Записей в блоге: 14
17.07.2015, 20:17 4
Работает.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (this.checkBox1.Checked)
            {
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState = FormWindowState.Maximized;
            }
            else
            {
                this.FormBorderStyle = FormBorderStyle.FixedSingle;
                this.WindowState = FormWindowState.Normal;
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (Form form = new Form())
            {
                form.WindowState = this.checkBox1.Checked ? FormWindowState.Maximized : FormWindowState.Normal;
                form.ShowDialog();
            }
        }
Приложите ваш проект.
0
16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
17.07.2015, 20:21  [ТС] 5
Вот exe
Вложения
Тип файла: rar Арканоид.rar (4.35 Мб, 4 просмотров)
0
16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
17.07.2015, 20:22  [ТС] 6
alt+f4 закрыть окно
0
Эксперт .NET
7796 / 5260 / 1252
Регистрация: 25.05.2015
Сообщений: 16,034
Записей в блоге: 14
17.07.2015, 20:35 7
Зачем вам 6 картинок? Файл до 8 МБ уже растолстел.

Проблема в том, что вы один раз создали форму и храните её, а не пересоздаёте при необходимости.
Один раз показали развернутой, закрыли. Она сохранила свои размеры. Показываете нормальной, она и показывается нормальной с последними имевшимися размерами, на весь экран.
0
16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
17.07.2015, 20:47  [ТС] 8
тогда как это объяснить???
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void GameShowDialog()
        {
            if (check_full_scrin.Checked)
            {
                game.WindowState = FormWindowState.Maximized;
                game.ShowDialog();
            }
            if (!check_full_scrin.Checked)
            {
                game.WindowState = FormWindowState.Normal;
                game.ShowDialog();
            }
        }
Добавлено через 1 минуту
Здесь я явно форме задаю значение,так почему форма не запоминает его???

Добавлено через 1 минуту
И почему с первой формой такой проблемы нет???
0
Эксперт .NET
7796 / 5260 / 1252
Регистрация: 25.05.2015
Сообщений: 16,034
Записей в блоге: 14
17.07.2015, 20:56 9
Ну так и объяснить.
GameShowDialog первый раз, когда Form_Game ещё было Normal, окно показывается как Normal.
GameShowDialog другой раз, установив в Maximized, окно показывается как Maximized, и запоминает свои новые размеры.
GameShowDialog третий раз, установив в Normal, окно показывается как Normal, с последними запомненными размерами во весь экран.
0
16 / 11 / 0
Регистрация: 06.03.2015
Сообщений: 162
17.07.2015, 20:58  [ТС] 10
Так как мне это исправить???
0
Эксперт .NET
7796 / 5260 / 1252
Регистрация: 25.05.2015
Сообщений: 16,034
Записей в блоге: 14
17.07.2015, 21:03 11
С первой...

Вот так сделайте
C#
1
2
3
4
5
6
7
8
9
10
if (this.checkBox1.Checked)
            {
                this.FormBorderStyle = FormBorderStyle.Sizable;
                this.WindowState = FormWindowState.Maximized;
            }
            else
            {
                this.FormBorderStyle = FormBorderStyle.Sizable;
                this.WindowState = FormWindowState.Normal;
            }
А после разворачивания на весь экран, с помощью мышки, сделайте окно нормальным и поменяйте ему размер. Потом снова пощелкайте checkbox.

Добавлено через 28 секунд
Цитата Сообщение от dedlovscky Посмотреть сообщение
Так как мне это исправить???
Форму создавать только на время показа. Или задавать размеры по умолчанию при выходе из развернутого режима.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2015, 21:03

StayOnTop и вторая форма
Всем привет! В проекте 2 формы, у первой выставляю свойство: Form1->Formstyle=fsStayOnTop; По...

Вторая форма главная?
как сделать вторую форму главной? чтоб при компиляции программы, открывалась вторая форма, а не...

Не запускается вторая форма
Здравствуйте, нужна ваша помощь, я написал программу к ней же updater, мне в программе нужна форма...

Зависает вторая форма
Добрый день. Помогите пожалуйста с такой проблемой... пишу программу на тиражирование данных в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru