| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Открыть форму из другого проекта в одном решении |
| Автор: Hashashin 1.11.2010, 16:59 |
| Всем привет. В одном решении несколько проектов. Можно ли открыть форму одного проекта из другого проекта и передать ей параметры? Или возможно только запустить экзешник другого проекта? |
| Автор: Экскалупатор 1.11.2010, 18:25 |
| как сказал Хьюберт Хармсворт:"возможно все, что возможно вообразить". используй, к примеру WCF, и дергай один проект из другого. в чем дело то? |
| Автор: Fitc 1.11.2010, 23:32 | ||||
Можно, создаешь свой класс, отнаследованный от класса Form, прописываешь для него желаемый конструктор.... затем в любом проекте создаешь новый экземпляр этого класса и отображаешь форму, используя метод Show(). Добавлено через 2 минуты и 38 секунд
Извините, но при чем тут WCF??!! |
| Автор: KelTron 2.11.2010, 07:50 |
| Fitc, насколько я понял, автор имел ввиду, что есть 2 запущенных приложения, и из одного нужно открыть форму в другом. Для того и WCF. |
| Автор: Hashashin 2.11.2010, 12:14 |
| Нет-нет приложение запущено одно. К примеру в решении 3 проекта. Запускается стартовый проект, там у нас форма, в ней мы выбираем необходимый проект жмем на стартовой форме запустить и у нас открывается тот проект. А вообще хотелось бы, чтобы он запускался внутри стартовой формы. |
| Автор: Экскалупатор 2.11.2010, 12:50 | ||
| так может просто оформить это как один проект? зачем такие сложности? да и к тому же
какой смысл тогда разбивать на разные проекты? делай все в одном, только включай разные формы. |
| Автор: Veitmen 2.11.2010, 13:17 |
| Здравствуйте автор. Во первых разберитесь насколько вам необходимо разделять то, что относится к слою представления на несколько проектов. После того как вы поняли что это необходимо что это вам нужно сделайте следующее: 1. Добавьте ссылку из проекта в котором хотите использовать формы другого проекта, на проект в котором лежит форма. 2. Добавьте using в файл где хотите использовать форму на неймспейс где лежит форма. 3. Создайте объект формы и вызовите у этого объекта метод Show или ShowDialog, в зависимости от того какое поведение формы вам необходимо. |
| Автор: Hashashin 2.11.2010, 14:03 | ||
Раньше это были разные проекты, сначала сделался один, потом второй, третий, каждый проект для отдельного подразделения... Но потом было решено, не знаю зачем, собрать это все в одну кучу. И потом, если будут ошибки в одном проекте решения, легче будет исправлять и выкладывать исправления. Или вообще никакой разницы? |
| Автор: Экскалупатор 2.11.2010, 15:58 |
| как мне кажется, то в любом случае надо что бы каждый проект предоставлял интерфейс для запуска себя с параметрами(на вроде ключей когда запускаешь софт из командной строки). если такового нету то с параметрами не запустишь, запустишь только так как написано. отсюда получается что в любом случае придется изменять все проекты, реализовывая в них возможность передачи параметров. так что на мой взгляд проще все же все собрать в один проект. тогда работать с разными частями будет намного проще. на счет обновлений и исправлений, тут думаю нужно просто реализовывать все в библиотеках. т.е. не компилировать все в один екзешник, а делать несколько dll, и собна сам екзешник, к которому все это будет подключаться, тогда можно будет менять библиотеки как тебе хочется(обновлять изменять), главное что бы интерфейс не менялся. |
| Автор: Hashashin 2.11.2010, 16:20 |
| Нет, ну про параметры - это само собой. Про собирание все в один проект - подумаю еще) |
| Автор: Экскалупатор 2.11.2010, 16:51 |
ну а как по другому? |
| Автор: Hashashin 2.11.2010, 17:25 |
Ну вот я и говорю, по-другому никак, но это фигня. А вот если переносить все в один проект - не все гладко будет, я думаю. |
| Автор: Экскалупатор 2.11.2010, 17:49 |
почему? яф думаю все будет более гладко, чем в отдельных Добавлено через 20 секунд хотя конечно надо учитывать специфику проектов |