Подтвердить что ты не робот

Копирование winforms между проектами в Visual Studio

Каков наилучший способ скопировать или вырезать/вставить форму из одного проекта в другой проект в рамках решения в Visual Studio?

Всякий раз, когда я пытаюсь это сделать, используя обозреватель решений (перетаскивание или щелчок правой кнопкой мыши, вырезая и вставляя), он копирует только базовый код С#, а не необходимые "кусочки", которые помогают визуализировать форму через дизайнер форм.

4b9b3361

Ответ 1

Выяснил это - знал, что это будет что-то глупое.

По-видимому, целевой проект должен иметь ссылки:

  • System.Windows.Forms
  • System.Drawing

включенный в проект FIRST, прежде чем вы сделаете какую-либо копию или вставку, иначе вы получите описанную проблему.

Спасибо всем, кто пытался помочь BTW.

Ответ 2

  • Скопируйте три файла, .cs, .designer, resx в папку целевого решения.
  • В целевом проекте выберите Add existing item и сначала добавьте файл конструктора.
  • Измените атрибут пространства имен. Файл .cs должен войти.
  • Измените пространство имен в файле .cs.
  • Добавьте resx файл с помощью Add existing item.

Ответ 3

Чтобы скопировать форму из одного проекта VS2013 в другой, проще всего (наименьшее количество щелчков мыши):

  • В своем целевом проекте щелкните правой кнопкой мыши на родительской папке (вероятно, ваш проект) и в меню выберите "Добавить, существующий элемент".

  • Затем выберите файл формы cs в исходном проекте. Например, выберите Form.cs(не Form.Designer.cs или Form.resx).

  • Откройте Form.cs в целевом проекте и измените пространство имен (все экземпляры).

  • Закройте и снова откройте форму. и вы увидите все элементы управления и т.д.

Ответ 4

Теперь проще в 2012 году. Просто зайдите в "Файл" > "Добавить" > "Существующий проект" > Перетащите форму в проект, в который вы хотите добавить.

Ответ 5

Я пробовал следующий процесс в Visual Studio 2012 и работал.

  • Добавьте проект, из которого вы хотите импортировать форму, в свое решение, щелкнув правой кнопкой мыши по решению > Добавить > Существующие меню проекта. Выберите проект и нажмите "ОК".
  • Теперь щелкните правой кнопкой мыши форму, которую вы хотите скопировать, выберите копию.
  • Щелкните правой кнопкой мыши проект, в который вы хотите скопировать и выберите вставить.
  • Форма будет скопирована в ваш проект, теперь переименуем пространства имен.
  • Удалите проект, добавленный в шаге 1, из вашего решения.

Ответ 6

Используйте ReSharper (получите демо), щелкните правой кнопкой мыши класс в Code View, Refactor- > Move и переместите его к другому проекту.

Дополнительным преимуществом является то, что если вы измените пространство имен, переместив его между проектами, оно автоматически обновит все ссылки.

Ответ 7

Убедитесь, что вы копируете не только файлы Form.cs, но также файлы Form.designer.cs и Form.resx.

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

Ответ 8

Если вы хотите создавать формы на одной машине, просто сделайте это.

В Project Explorer ProjectДобавитьДобавить существующий элемент.

Выберите только файл .cs (Sample.cs) из исходного каталога и (Sample.cs) проводник текущего решения, он будет работать.

Ответ 9

Для Visual Studio V.12 это единственный метод, который работал у меня (это смесь выше записей):

  • Скопируйте через Проводник файлов три файла, которые формируются в форме.
  • В верхней строке браузера решений в Visual Studio включите "показать все файлы".
  • Файл file.cs отображается серым цветом. Нажмите правую кнопку и выберите: "Включить в проект". Исследователь решений автоматически связывает три файла (.designer и .resx под .cs файлом). Файл icon.cs изменит значок на значок С++ для создания значка.

Ответ 10

Вы выбираете файл или используете конструктор для "копирования" всех элементов управления? Выбор файла YourForm.cs в обозревателе решений и копирование его путем копирования и вставки или перетаскивания в другой проект должны выполнить то, что вам нужно.

Ответ 11

** Это работает для меня:

1) Скопируйте исходные файлы (.cs или vb,.designer,.resx) в целевую папку

2) Показывать скрытые файлы в целевом решении

3) Выберите эти файлы и включите их в проект.

Это добавит winform или любые другие частично разделенные файлы.

Ответ 12

Использование VS2013 просто протестировано и кажется надежным и последовательным. Это похоже на некоторые комментарии выше, но добавляет еще один способ, который быстрее.

(1-й) В Проводнике Windows выделите и скопируйте все 3 файла формы (.vb или .cs,.designer,.resx)

(2nd) Это можно выполнить двумя способами:

(2a-1) В File Explorer вставьте 3 файла в папку проекта с другими формами

(2a-2) В VS Solution Explorer включите "Показать все файлы", щелкните правой кнопкой мыши на вставленной форме и "Включить в проект". Он должен работать без других изменений.

Или, я думаю, лучше:

(2b-1) В VS, щелкните в обозревателе решений и вставьте w/Control-C. (По какой-либо причине контекстное меню контекстного меню в обозревателе решений может не показывать параметр вставки, но он работает с клавиатуры.) Этот метод напрямую добавляет форму в проект без необходимости "Включать в проект", как указано выше. С помощью этого метода вы можете добавить столько форм за раз, сколько хотите (все 3 файла для каждого) за один шаг.

Ответ 13

Я использую Visual Studio 2010, ниже приведены шаги, которые я выполнил:

  • Скопируйте все 3 файла (.cs,.resx,.Designer.cs) в папку проекта назначения.
  • В Visual Studio щелкните правой кнопкой мыши Проект Добавить Существующий элемент...
  • Выберите все 3 файла (.cs,.resx,.Designer.cs), нажмите Добавить.
  • Измените пространство имен на 2 файла (.cs,.Designer.cs), если это другое пространство имен в проекте назначения.
  • Запустите проект.
  • Готово!

Ответ 14

Я попробовал следующие шаги, и он работал нормально.

  1. скопируйте все 3 файла и файлы значков (если они есть) в целевой проект.
  2. Теперь перейдите в обозреватель решений вашего проекта и щелкните значок Показать все файлы в верхней части sol.explorer.
  3. Теперь вы можете видеть ваши новые добавленные файлы в вашем проекте.

Ответ 15

Если вы используете VS 2015, то вы просто хотите добавить файл ".vb" и изменить пространство имен с новым именем проекта.

Пример: если вы хотите добавить "Form1", созданную с использованием VS2008, в новый проект, созданный с использованием VS2015.

  1. Скопируйте весь файл ".vb", файл ".resx", файл ".disigner.vb" в новую папку проекта.
  2. Затем измените пространство имен файла .disigner.vb, используя новое имя проекта.

Эти два шага спомогли мне.

Ответ 16

В Visual Studio 2015 щелкните проводник решений и щелкните правой кнопкой мыши. Add-> Существующий элемент и выберите из другого проекта форму, которую вы хотите добавить, например Form.cs и автоматически Form.designer.cs, Form.resx будет добавлен

Ответ 17

Если вам нужно использовать одну и ту же форму в разных проектах, решения: Создайте "Проект библиотеки классов", к этому проекту вы добавляете формы, которыми вы хотите поделиться, а затем просто добавляете ссылку на dll в ваш основной проект, вы можете легко ссылаться на формы. Его работы идеально подходят для меня