Как мне заставить кнопки в двух отдельных формах C # в двух отдельных проектах открывать друг друга?

#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:

Выполните следующие действия:

  1. Создайте новый проект (скажем, «Opener») в том же решении, что и простая командная утилита.
  2. Добавьте ссылку на основные проекты в Opener.
  3. В Program.cs добавьте следующий код:

    private static void OpenForm(String formName) { if (formName == «Form1») // Откройте вашу Form1 else // Откройте вторую Form2 }

  4. Теперь вы можете просто открывать формы в событии нажатия кнопки 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, используя процесс. Запуск. если это поможет, просто отметьте ответ как принятый. 🙂