Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формы в C#, Как запустить вторую форму не закрываю? 
V
    Опции темы
valid
Дата 14.2.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



Здравствуйте!!!!!

Есть такая проблемка, имеются 3 формы(главная, первая и вторая).
На главной форме находятся две кнопки.
Одна кнопка должна открывать первую форму, закрывая главную, а вторая - вторую соответственно.

На первой форме расположены две кнопки, сохранить и отменить.
При нажатии на сохранить, главная форма должна появиться и закрыться первая.

Такой еще вопрос, как показать на экране две независимые формы?



Это сообщение отредактировал(а) valid - 15.2.2010, 00:14
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Цитата(valid @  14.2.2010,  22:58 Найти цитируемый пост)
Одна кнопка должна открывать первую форму, закрывая главную, а вторая - вторую соответственно.

я так понимаю что первая форма это какой то вопрос? тогда может его просто открыть как ShowDialog()? тогда главная форма станет не доступна для пользователя пока он не закроет первую форму. соответственно в главной форме можно узнать что именно нажал пользователь и принять какие то меры. со второй формой можно сделать тоже самое.

а по поводу двух независимых форм я что то не совсем понял. объясните подробнее.
PM MAIL ICQ   Вверх
valid
Дата 15.2.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



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

Добавлено через 2 минуты и 9 секунд
кнопки сохранить и отменить я привел как пример. на первой форме могут находиться много других элементов

Это сообщение отредактировал(а) valid - 15.2.2010, 00:26
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



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

Добавлено через 1 минуту и 27 секунд
т.е. надо сделать класс который будет управлять формами
PM MAIL ICQ   Вверх
valid
Дата 15.2.2010, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



ммм, а как внутри одной формы запустить другую?
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



форма это такой же класс как и всякий другой. и работает почти так же. создаешь экземпляр этого класса и показываешь его.

Код

Form1 form = new Form1();
form.Show();

PM MAIL ICQ   Вверх
Miller_time
Дата 15.2.2010, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Form1 frm=new Form1(); //Запускает твою форму.

this.close(); //Закроет текущюю форму.

P.S. писал с мобильного, телефона за точность,не отвечаю


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
valid
Дата 15.2.2010, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



спасибо, но тут опять же зависимость получается

нажимаем на кнопку AddTask
 
Код


        private void AddTask_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form1 form = new Form1();
            form.Show();
        }



вот так сделать не получится.....
Код


        private void AddTask_Click(object sender, EventArgs e)
        {
            this.Close();
            Form1 form = new Form1();
            form.Show();
        }



и еще, на Form1 у нас кнопка, по нажатию, закрывается Form1 и открывается наша скрытая или закрытая форма

Это сообщение отредактировал(а) valid - 15.2.2010, 01:41
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



valid, я же вроде бы написал, сделай класс который будет тебе открывать и закрывать формы. и не будет никаких проблем.
PM MAIL ICQ   Вверх
valid
Дата 15.2.2010, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



ммм, все, разобрался. Спасибо всем большое!!!
PM MAIL   Вверх
de_Nis
Дата 15.2.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старательный
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 19.10.2006
Где: Молдова

Репутация: нет
Всего: 6



Цитата(valid @  15.2.2010,  00:50 Найти цитируемый пост)
ммм, все, разобрался.

valid, хорошим тоном на форуме является показ найденного решения. Решение полезно тем, кого интересует вопрос темы. К тому же в найденном решении, если его показать, более опытные форумчане могут найти ошибки или неточности. 
--------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет…
PM   Вверх
valid
Дата 15.2.2010, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



Код


        private void AddTask_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form2 form = new Form2();
            form.Show();
        }

        private void Add_Click(object sender, EventArgs e)
        {
            this.Close();
            Form1 form = new Form1();
            form.Show();
        }



я раньше не сидел на форумах, поэтому тонкостей не знаю....
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



valid, у тебя в итоге получается запущены 2 главные формы. потому что в
Код

 private void AddTask_Click(object sender, EventArgs e)
        {
            this.Hide();//прячешь НО НЕ ЗАКРЫВАЕШЬ
            Form2 form = new Form2();
            form.Show();
        }

ты главную форму не закрываешь а прячешь, т.е. фактически она остается в памяти.
а потом ты 
Код

 private void Add_Click(object sender, EventArgs e)
        {
            this.Close();
            Form1 form = new Form1();//вот тут создаешь НОВУЮ форму
            form.Show();
        }

создаешь новую форму и показываешь ее. при этом старая форма остается висеть в памяти в свернутом состоянии...
это все конечно работает, но это как минимум не красиво. надо как то уже хоть взаимодействовать между формами, что бы вторая форма получала ссылку на первую и при выходе показывала ее.
PM MAIL ICQ   Вверх
valid
Дата 15.2.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


validnext
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2009

Репутация: нет
Всего: нет



ммм, интересно, как это сделать?
PM MAIL   Вверх
Экскалупатор
Дата 15.2.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Цитата(valid @  15.2.2010,  09:48 Найти цитируемый пост)
ммм, интересно, как это сделать? 

ну про это я уже два раза писал. но если сложно с классом. то самый простой способ это передать ссылку на главную форму в конструктор "первой"(использую названия из первого поста) формы. а потом работать с этой ссылкой.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0871 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.