#c# #forms #visual-studio #reference #dependencies
#c# #формы #visual-studio #ссылка #зависимости
Вопрос:
Я работаю с двумя проектами C # в одном решении Microsoft Visual Studios. Один проект содержит форму, используемую для выбора формы из другого проекта для открытия. У меня также есть кнопка «Назад» в каждой из форм моего проекта 2, которую я надеюсь использовать для повторного открытия селектора форм из первого проекта. Я исследовал, как обойти циклические ссылочные зависимости, но безуспешно. Я бы предпочел сохранить их как два отдельных проекта. Нужно ли мне будет объединить все в один беспорядочный проект, или есть способ выполнить то, что я пытаюсь сделать? Заранее благодарю вас.
Редактировать:
Я нашел простое, но эффективное решение. Мне нужно только ссылаться на проект 2 из проекта 1, потому что я могу передать форму Project 1 в качестве параметра в формы Project 2, а затем отображать первую форму при нажатии кнопки. Еще раз спасибо.
Комментарии:
1. Это Windows Forms (например,
Form
класс в следующем пространстве имен:System.Windows.Forms
)? Не могли бы вы также опубликовать некоторый код, пожалуйста, особенно код, который вы используете для открытия формы из Project 2?
Ответ №1:
Выполните следующие действия:
- Создайте новый проект (скажем, «Opener») в том же решении, что и простая командная утилита.
- Добавьте ссылку на основные проекты в Opener.
-
В Program.cs добавьте следующий код:
private static void OpenForm(String formName) { if (formName == «Form1») // Откройте вашу Form1 else // Откройте вторую Form2 }
-
Теперь вы можете просто открывать формы в событии нажатия кнопки click by:
Процесс.Start(«Opener.exe Form1»);
Комментарии:
1. Спасибо за ваш ответ. Это кажется разумным решением, но у меня есть вопрос о том, как его реализовать. Если у меня есть один проект ‘Opener’, который вызывается Project 1 для открытия Project 2 и вызывается Project 2 для открытия Project 1, то проект ‘Opener’ должен будет ссылаться на проекты 1 и 2, а проекты 1 и 2 должны будут ссылаться на Opener, что приведет к той же проблеме. Нужны ли мне два открывающих проекта, один из которых вызывается Project 1 для открытия Project 2, а другой, вызываемый Project 2 для открытия Project 1? Спасибо.
2. Нет, вам не нужно ссылаться на Opener project в любом другом проекте. Просто вызовите его .exe, используя процесс. Запуск. если это поможет, просто отметьте ответ как принятый. 🙂