Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
3 / 3 / 0
Регистрация: 31.10.2012
Сообщений: 142

Как закрыть форму

17.02.2013, 03:03. Показов 5204. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Нужно создать несколько форм. Одна из форм есть навигационная на другие формы.
То есть есть форма. На ней кнопки, нажал - открылась определенная форма, нажал еще раз - закрылась.
Открытие я сделал, а вот закрыть форму не удается(
Миниатюры
Как закрыть форму  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2013, 03:03
Ответы с готовыми решениями:

Закрыть 2 форму при этом не закрыть весь проект
Нужна помощь!!! как сделать так что бы в 1 форме выходила 2 а после,2 форма закрывалась при нажатии кнопки но не выходила с проекта...

Как закрыть форму
Добрый день,скажите пожалуйста. Как организовать закрытие формы по нажатию кнопки button1.? Есть Form1,Form2 открывается из Form1. ...

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

8
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
17.02.2013, 07:34
Весь код приведите, а то просто закрытие и открытие у меня отлично работает, а вот что за i там я не совсем понимаю.
0
174 / 174 / 57
Регистрация: 08.01.2013
Сообщений: 335
17.02.2013, 08:32
а не проще вместо счетчика сделать bool переменную:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool isOpen=false;
private void btn_about_form_Click(object sender, EventArgs e)
{
   About_Form f2 = new About_Form();
   if (!isOpen)
   {
        f2.Show();
        isOpen = true;
   }
   else
   {
         f2.Close();
         isOpen = false;
    }
}
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
17.02.2013, 19:32
Flash_2oo9, Хм ... Как вы думаете, что означает следующая строка ?
C#
1
About_Form f2 = new About_Form();
В этой строке вы создаете новый объект класса About_Form, который не имеет отношения к тому объекту, который вы создавали до этого. От того, что вы для него выполните метод Close, у вас не закроется форма, которая принадлежит к совершенно другому объекту, созданному до этого. Можете попробовать так сделать:
C#
1
2
3
4
5
6
7
private void btn_about_form_Click(object sender, EventArgs e)
{
    if(Application.OpenForms["About_Form"] == null)
        (new About_Form()).Show();
    else
        Application.OpenForms["About_Form"].CLose();
}
0
3 / 3 / 0
Регистрация: 31.10.2012
Сообщений: 142
17.02.2013, 20:19  [ТС]
kodv, все равно форма только открывается. Закрываться не хочет.
0
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
17.02.2013, 23:05
А если хранить ссылку на форму?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private About_Form aboutForm = null;
private void btn_about_form_Click(object sender, EventArgs e)
{
    if(aboutForm == null)
    {
        aboutForm = new About_Form();
        aboutForm.Show();
    }
    else
    {
        aboutForm.Close();
        aboutForm = null;
    }
}
1
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
18.02.2013, 05:16
Flash_2oo9, Странно, очень странно ... Не скрою, писал код прямо здесь, не тестируя. Но сейчас проверил, и у меня все работает ... Единственное, что правильно пишется Close, а не CLose. Но я не думаю, проблема в этом.
Что происходит, когда вы нажимаете кнопку второй раз? Должна либо открыться вторая форма, либо закрыться та, которая уже есть. А еще лучше, покажите код, который у вас получился.
0
3 / 3 / 0
Регистрация: 31.10.2012
Сообщений: 142
18.02.2013, 18:10  [ТС]
kontuPauk, спасибо. Работает.)))

kodv, вроде делал все как надо все-равно не хочет вашим способом. Вот если интересно, записал на видео свои действия http://youtu.be/CorihD0UW7o.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
18.02.2013, 18:40
Flash_2oo9, я, собственно, поэтому и спрашивал, что происходит при втором нажатие. Как показал следственный эксперимент, если не изменить свойство Text в новой форме, то при создании форма создается с пустым свойством Name, а Application.OpenForms ищет форму именно по этому свойству. Я, естественно, тестировался на уже созданных заранее формах, поэтому у меня свойство Name соответствовало названию класса формы. В общем, не стоит пытаться предугадывать автоматически сгенерированное имя формы, лучше его, конечно, задавать явно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2013, 18:40
Помогаю со студенческими работами здесь

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

Как закрыть прошлую форму?
Как закрить прошлую форму, или оновить

Как закрыть форму с другой формы?
Есть программа, в ней аторизация, когда она прошла успешно то открывается главное окно программы а окно авторизации должно закрыться, но не...

Как закрыть вторую форму из первой?
Как закрыть вторую форму из первой? создал: Vnesti Vnes = new Vnesti(); Vnes.ShowDialog(); ...

Как закрыть форму из другой формы?
Собственно, как при нажатии на кнопку формы 1 закрыть форму 2? пробовал сделать так Form2 fr2 = new Form2(); ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru