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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Visual C#: Как запихнуть две формы в проект? ламерский вопрос... 
:(
    Опции темы
Human
Дата 18.6.2004, 16:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я только начал осваивать Visual Studio, в частности язык C#. И у меня возник вопрос по поводу форм. Я добавил в проект вторую форму, и теперь не могу ее вызвать. Т. е. при нажатии на кнопку на первой, должна появляться вторая форма, но я так и не понял как это осушествить.
Буду оч благодарен если кто-нибудь разяснит это скромному ламеру rolleyes.gif
  Вверх
Kurt
Дата 18.6.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Вставляешь в обработчик клика:
Код

Form2 frm=new Form2();
frm.Show();
return;


где Form2 - твоя вторая форма.
Если хочешь показать форму в модальном режиме:
Код

Form2 frm=new Form2();
frm.ShowDialog();
return;


Все.
Кстати, если 2-я форма где-то еще понадобится в обработчиках 1-й событий формы, можешь сделать переменную frm глобальной..

Удачного освоения! smile.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Human
Дата 18.6.2004, 18:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасибо за совет!
я попробовал, и вот что получил.

если использовать
Form2 frm = new Form2()
то он начинает ругаться на Form2.

если я использую просто
Form frm = new Form()
frm.Show();
то все работает без сбоев,
НО: появляется совершенно пустая новая форма, а у меня была задача вывести уже скомпонованную готовую отдельную форму, которая уже внедрена в проект. как быть?
  Вверх
human
  Дата 18.6.2004, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я еще попробовал кое-что и у меня получилось.
использовал это:
Код

Form about = new about();
about.Show();

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

Это сообщение отредактировал(а) human - 18.6.2004, 18:41
PM   Вверх
stab
Дата 18.6.2004, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Код

about.Show();


надо заменить на:

Код

about.ShowDialog(this);



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Kurt
Дата 18.6.2004, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



human, погоди. У тебя класс 2-й формы назывался about?
Блин, я ж тебе говорил:
Цитата

где Form2 - твоя вторая форма

Не надо понимать буквально! Я ж не знал имя твоей 2-й формы! Надо было подставить вместо Form2 ТВОЕ имя класса!
Кстати,
Цитата

Form about = new about();

Как я понимаю, ты тут создаешь переменную, совпадающую по имени с типом. Это нежелательно.
Попробуй так:
Код

about frm = new about();
frm.Show();
..


cully, и Show() и ShowDialog() можно вызывать без параметров.
Тогда окном-родителем считается текущее окно.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
human
  Дата 19.6.2004, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Kurt, cully, большое спасибо, разобрался!

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


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



еще такой совет: при использовании ShowDialog, после того как форма больше не нужна, надо обязательно вызвать метод Dispose, т.е.

Код
Form2 frm = new Form2();

frm.ShowDialog();

frm.Dispose();


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


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
human
Дата 19.6.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(cully @ 19.6.2004, 01:26)
т.к. при использовании ShowDialog форма не освобождается, а просто прячется и все созданные копии формы висят в памяти.

угумс, учту.
PM   Вверх
human
  Дата 19.6.2004, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня возник еще один важный (наверно только для меня) вопрос:
сделал я програмку малюсенькую, скомпилировал ее и она у меня прекрасно работает.
но что нужно сделать чтобы она работала и у других?! smile.gif
а то получается, я прошу ее протестить — а она ни у кого не запускается. возможно нужно привязать какие-то библиотеки, или еще что-то сделать. как быть?

Это сообщение отредактировал(а) human - 19.6.2004, 23:53
PM   Вверх
stab
Дата 20.6.2004, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Нужно что бы на компьютере стоял .net framework. Взять дистрибутив можно либо на диске с VS, либо на сайте microsoft -- http://www.microsoft.com/downloads/details...&displaylang=en


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
human
Дата 20.6.2004, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



т.е. все приложения которые я создаю при помощи Visual Studio .Net (не выжно на каком языке) для запуска будут требовать .net framework?
PM   Вверх
Kurt
Дата 20.6.2004, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Ну да.
Также как для Java нужна JavaVM.
Тока следует учесть, что M$ теперь везде будет встраивать Framework в свои Windows (до след. умопомрачитеьной идеи, конечно).
Кроме того, существуют специальные Майкрософтовские пакеты для обеспечения работоспособности дотНЕТ-приложения на "обычной" машине.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
human
Дата 20.6.2004, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Kurt @ 20.6.2004, 10:12)
Ну да.
Также как для Java нужна JavaVM.
Тока следует учесть, что M$ теперь везде будет встраивать Framework в свои Windows (до след. умопомрачитеьной идеи, конечно).
Кроме того, существуют специальные Майкрософтовские пакеты для обеспечения работоспособности дотНЕТ-приложения на "обычной" машине.

спасибо, теперь все ясно smile.gif
и еще, нет ли у тебя линка где про обеспечение работы приложений .нет на обычных машинах можно почитать?

Это сообщение отредактировал(а) human - 20.6.2004, 11:01
PM   Вверх
Softaz
Дата 17.7.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


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

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



Вот статья про создание инсталляционных пакетов и распространении .NET
Скачать 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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