Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Открыть форму из другого проекта в одном решении


Автор: Hashashin 1.11.2010, 16:59
Всем привет.

В одном решении несколько проектов. Можно ли открыть форму одного проекта из другого проекта и передать ей параметры?
Или возможно только запустить экзешник другого проекта?

Автор: Экскалупатор 1.11.2010, 18:25
как сказал Хьюберт Хармсворт:"возможно все, что возможно вообразить". используй, к примеру WCF, и дергай один проект из другого. в чем дело то?

Автор: Fitc 1.11.2010, 23:32
Цитата(Hashashin @ 1.11.2010,  16:59)
Всем привет.

В одном решении несколько проектов. Можно ли открыть форму одного проекта из другого проекта и передать ей параметры?

Можно, создаешь свой класс, отнаследованный от класса Form, прописываешь для него желаемый конструктор.... затем в любом проекте создаешь новый экземпляр этого класса и отображаешь форму, используя метод Show().

Добавлено через 2 минуты и 38 секунд
Цитата(Экскалупатор @ 1.11.2010,  18:25)
как сказал Хьюберт Хармсворт:"возможно все, что возможно вообразить". используй, к примеру WCF, и дергай один проект из другого. в чем дело то?

Извините, но при чем тут WCF??!!

Автор: KelTron 2.11.2010, 07:50
Fitc, насколько я понял, автор имел ввиду, что есть 2 запущенных приложения, и из одного нужно открыть форму в другом.
Для того и WCF.

Автор: Экскалупатор 2.11.2010, 08:25
Fitc, а при чем тут:
Цитата(Fitc @  1.11.2010,  22:32 Найти цитируемый пост)
создаешь свой класс, отнаследованный от класса Form, прописываешь для него желаемый конструктор

если у ТС два приложения?

Автор: Hashashin 2.11.2010, 12:14
Нет-нет приложение запущено одно.
К примеру в решении 3 проекта. Запускается стартовый проект, там у нас форма, в ней мы выбираем необходимый проект жмем на стартовой форме запустить и у нас открывается тот проект. А вообще хотелось бы, чтобы он запускался внутри стартовой формы.

Автор: Экскалупатор 2.11.2010, 12:50
так может просто оформить это как один проект? зачем такие сложности?
да и к тому же
Цитата(Hashashin @  2.11.2010,  11:14 Найти цитируемый пост)
А вообще хотелось бы, чтобы он запускался внутри стартовой формы. 

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

Автор: Veitmen 2.11.2010, 13:17
Здравствуйте автор.

Во первых разберитесь насколько вам необходимо разделять то, что относится к слою представления на несколько проектов.

После того как вы поняли что это необходимо что это вам нужно сделайте следующее:
1. Добавьте ссылку из проекта в котором хотите использовать формы другого проекта, на проект в котором лежит форма.
2. Добавьте using в файл где хотите использовать форму на неймспейс где лежит форма.
3. Создайте объект формы и вызовите у этого объекта метод Show или ShowDialog, в зависимости от того какое поведение формы вам необходимо.

Автор: Hashashin 2.11.2010, 14:03
Цитата(Экскалупатор @  2.11.2010,  12:50 Найти цитируемый пост)
какой смысл тогда разбивать на разные проекты? делай все в одном, только включай разные формы. 


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

И потом, если будут ошибки в одном проекте решения, легче будет исправлять и выкладывать исправления. Или вообще никакой разницы?

Автор: Экскалупатор 2.11.2010, 15:58
как мне кажется, то в любом случае надо что бы каждый проект предоставлял интерфейс для запуска себя с параметрами(на вроде ключей когда запускаешь софт из командной строки). если такового нету то с параметрами не запустишь, запустишь только так как написано. отсюда получается что в любом случае придется изменять все проекты, реализовывая в них возможность передачи параметров. так что на мой взгляд проще все же все собрать в один проект. тогда работать с разными частями будет намного проще. 
на счет обновлений и исправлений, тут думаю нужно просто реализовывать все в библиотеках. т.е. не компилировать все в один екзешник, а делать несколько dll, и собна сам екзешник, к которому все это будет подключаться, тогда можно будет менять библиотеки как тебе хочется(обновлять изменять), главное что бы интерфейс не менялся.

Автор: Hashashin 2.11.2010, 16:20
Нет, ну про параметры - это само собой.
Про собирание все в один проект - подумаю еще)

Автор: Экскалупатор 2.11.2010, 16:51
Цитата(Hashashin @  2.11.2010,  15:20 Найти цитируемый пост)
Нет, ну про параметры - это само собой.

ну а как по другому?

Автор: Hashashin 2.11.2010, 17:25
Цитата(Экскалупатор @  2.11.2010,  16:51 Найти цитируемый пост)
ну а как по другому? 

Ну вот я и говорю, по-другому никак, но это фигня.
А вот если переносить все в один проект - не все гладко будет, я думаю.

Автор: Экскалупатор 2.11.2010, 17:49
Цитата(Hashashin @  2.11.2010,  16:25 Найти цитируемый пост)
не все гладко будет, я думаю. 

почему? яф думаю все будет более гладко, чем в отдельных

Добавлено через 20 секунд
хотя конечно надо учитывать специфику проектов

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)