#c# #user-interface
#c# #пользовательский интерфейс
Вопрос:
Краткое описание: Создайте основное приложение для запуска других приложений, объединив код в Visual Studio.
Подробности: У меня есть 3 проекта (все на c #), которые я могу открыть в Visual Studio. Все они работают. Все они основаны на графическом интерфейсе. Я хочу создать основное приложение всего с несколькими кнопками на нем, которые будут открывать каждое приложение при нажатии соответствующей кнопки.
Я знаю, что могу выполнить это с помощью «System.Диагностика.Процесс.Начать (@»program1.exe «); » но я не хочу упаковывать все это вместе и должен давать своим коллегам несколько исполняемых файлов и надеяться, что они прочитают инструкции и выполнят правильный файл. Я хотел бы вместо этого взять все файлы .cs из приложений и импортировать их в мое основное приложение. Я хочу, чтобы файлы program1 запускались при нажатии program1button и запускались как обычно. Возможно ли это?
пример: Это основное приложение будет выглядеть так, как описано ниже. При нажатии program1button я хочу запустить program1.
_____________________
| master application|
| |
| |program1Button| |
| |
| |program2Button| |
| |
| |program3Button| |
| |
|___________________|
Комментарии:
1. обязательно ли они должны быть исполняемыми файлами? как насчет MEF и создания приложений в качестве плагинов для «лаунчера»?
2. Что такое MEF? я довольно новичок в Visual Studio.
3. К вашему сведению, язык называется «C #», а не «C Sharp» или «csharp»
4. Очень признателен, вы всегда готовы помочь, мистер Сондерс. ОТРЕДАКТИРОВАНО: перечитайте это, и это прозвучало так, как будто я был саркастичным. Приношу свои извинения за любые неправильные представления.
5. MEF является «Microsoft Extension Framework», частью .net 4, и также доступна на codeplex. по сути, это фреймворк плагинов для C#
Ответ №1:
Итак, если вы хотите, чтобы весь код был в одном проекте и в одном exe-файле, вам нужно объединить всю логику в одно решение и файл проекта.
Комментарии:
1. точно. Но должен ли я копировать и вставлять все это в один .cs? Каждое приложение имеет свой собственный графический интерфейс. Я действительно хочу открыть пользовательский графический интерфейс для каждого из них.
2. Это приложение winforms? Вы бы просто создали другие формы и отображали / скрывали формы в зависимости от функциональности, которую вы хотите вызвать. Вы должны быть в состоянии перемещать фактические формы и соответствующие файлы в унифицированный проект, вам придется немного поработать над отображением / скрытием форм и любых данных, которые вам нужно передавать между ними.
3. Джон, я думаю, это именно то, что я хочу сделать. Я никогда раньше этого не делал и ударился в поисковые запросы Google, пытаясь найти примеры кода. Есть ли у вас какие-либо ссылки, которые могли бы помочь?
4. Наверное, я немного запутался. Если у вас сейчас есть приложение winforms, а их всего три, создайте новое решение и перенесите в него все файлы. Основная форма вашего первоначального приложения будет тем, что открывает другие формы. Это не намного сложнее, чем сказать добавить новую форму в проект. Я не знаю, какие ссылки я мог бы найти, чтобы показать вам … остальные три приложения созданы не вами?
5. О, хорошо. Это намного проще, чем я это делал. Я написал все 3 приложения. Я действительно не знаю, как использовать Visual Studio, я просто собрал коды вместе с помощью поиска в Google. Чтобы более четко определить, что я задавал на ваш первоначальный вопрос: «как вызвать другую форму?»
Ответ №2:
Это очень просто.
- Вы можете создать новый exe-проект, winform или WPF на основе вашего предыдущего приложения.
- Вы можете добавить каждый проект в свое решение и добавить все три проекта в качестве ссылки на новый проект.
- У каждого вашего предыдущего проекта будет начальная точка. Это вам придется сделать вручную в вашем новом проекте.
WinForm имеет начальную точку в качестве приложения.Выполнить (новая основная форма());
Итак, в вашем новом проекте вы можете просто создать новый экземпляр form и запустить его.
В WPF также вам нужно просто создать экземпляр нового окна на основе выбранного и отобразить форму
Комментарии:
1. Но не приведет ли это к созданию нескольких exe-файлов? Он сказал, что не хочет распространять три.
2. Извините, я забыл упомянуть, что вы можете изменить свой проект на тип библиотеки. И если вам нужен только один exe-файл и никакой dll, тогда вам нужно добавить исходный код каждого проекта в качестве ссылки в вашем новом проекте.