Копирование winforms между проектами в Visual Studio
Каков наилучший способ скопировать или вырезать/вставить форму из одного проекта в другой проект в рамках решения в Visual Studio?
Всякий раз, когда я пытаюсь это сделать, используя обозреватель решений (перетаскивание или щелчок правой кнопкой мыши, вырезая и вставляя), он копирует только базовый код С#, а не необходимые "кусочки", которые помогают визуализировать форму через дизайнер форм.
Ответы
Ответ 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
Я попробовал следующие шаги, и он работал нормально.
- скопируйте все 3 файла и файлы значков (если они есть) в целевой проект.
- Теперь перейдите в обозреватель решений вашего проекта и щелкните значок Показать все файлы в верхней части sol.explorer.
- Теперь вы можете видеть ваши новые добавленные файлы в вашем проекте.
Ответ 15
Если вы используете VS 2015, то вы просто хотите добавить файл ".vb" и изменить пространство имен с новым именем проекта.
Пример: если вы хотите добавить "Form1", созданную с использованием VS2008, в новый проект, созданный с использованием VS2015.
- Скопируйте весь файл ".vb", файл ".resx", файл ".disigner.vb" в новую папку проекта.
- Затем измените пространство имен файла .disigner.vb, используя новое имя проекта.
Эти два шага спомогли мне.
Ответ 16
В Visual Studio 2015 щелкните проводник решений и щелкните правой кнопкой мыши.
Add-> Существующий элемент и выберите из другого проекта форму, которую вы хотите добавить, например Form.cs и автоматически Form.designer.cs, Form.resx будет добавлен
Ответ 17
Если вам нужно использовать одну и ту же форму в разных проектах, решения:
Создайте "Проект библиотеки классов", к этому проекту вы добавляете формы, которыми вы хотите поделиться, а затем просто добавляете ссылку на dll в ваш основной проект, вы можете легко ссылаться на формы. Его работы идеально подходят для меня