15

, пытающийся добавить существующую форму Windows в проект VS2012 WinForm, я запускаю «Добавить/Существующий элемент ...», затем импортирует: MyForm.cs, MyForm.designer.cs, MyForm.resxИмпорт форм Windows (C#), Visual Studio 2012

Это использовалось для более ранних версий VS. (Возможно, мне придется корректировать пространства имен.)

В VS2012 MyForm.designer.cs и MyForm.resx теперь не связаны с Формой для целей Дизайнера; то есть они отображаются как отдельные записи файлов в обозревателе решений, а не вложенные под MyForm. Двойной щелчок MyForm показывает пустую форму (без элементов управления) без сообщений об ошибках. Проект компилируется и работает нормально.

Однако, когда я перетаскиваю те же файлы в проект (настраиваю/переименовываю пространство имен), файлы формы правильно связаны друг с другом, и конструктор открывает форму в порядке.

В то время как у меня теперь есть решение, может кто-то подчеркнуть, какая разница между этими подходами, в чем смысл добавления параметра «Добавить/Существующий элемент», если он не работает, и что происходит на самом деле при перетаскивании файлов ? Какой файл (.csproj возможно?) Отвечает за присоединение файлов формы? Поскольку он работает в обоих случаях в более ранних версиях VS, я могу предположить, что это ошибка?

Спасибо.

ответ

26

Попытался воспроизвести вашу проблему - без успеха.

Предположим, что вы хотите импортировать форму под названием YourFormName. Тогда вы должны добавить только YourFormName.cs к проекту - остальные части (YourFormName.designer.cs и YourFormName.resx) будут добавлены автоматически.

Мои шаги:

  1. Создать WinForms проект (в моем случае .Net Framework является 4) в VS2012 (11.0.05727.1, если вопросы)
  2. правой кнопкой мыши по проектам -> Добавить -> Существующий элемент ...
  3. Поиск любого WinForm с элементами управления (я добавил две формы, созданные в VS2010 для .NET framework 4 и 3.5)
  4. С некоторой задержкой (приблизительно 30-40 секунд), для обоих случаев «Дизайнер» работал как ожидаемые и загруженные все существующие элементы управления/codebehind
+0

Хм, прошу пояснить «Вы должны добавить Form1.cs ...» ?? Form1 автоматически создается при создании нового приложения Windows Form. Я оставляю это в покое ... Когда вы добавляете существующие формы, которые _files_ вы ищете и выбираете? Все 3 (т. Е. .cs, .designer.cs и .resx?) Вот что я делаю в любом случае. Я ждал и ждал, будет ли это 0,4 секунды или 40 секунд, это не имеет никакого значения, я в итоге вижу 3 записи в файле в обозревателе решений, а конструктор не работает. – Matthias

+0

'Form1.cs' - это просто общее имя формы, подчеркивающее, что вы должны добавить только файл' .cs', а не '.resx' или' .designer.cs'.Изменит мой ответ, чтобы он дал понять. – Nogard

+0

Хорошо, получил я. Если я просто выберу .cs, тогда он работает, как вы говорите. Определенно другое поведение, чем более старые версии. Возможно, в предыдущих версиях он также работал только с импортом cs, но он «прощен», если выбрать и другие. Любопытно, но это _needs_ .designer.cs, вот где живет весь важный элемент управления. Также он включает .resx в маске файла при поиске файлов для импорта (но играет вверх, если вы действительно делаете :-) Я считаю, что он ответил. Спасибо, Ногард. – Matthias

3

Просто включите файл cs и просто wait примерно на mintue. Других файлов не требуется добавлять. Это будет работать.

перейти к project> добавить existing item выберите файл формы myform.cs, а затем нажмите на кнопку add. Это импортирует файл в ваш проект.

+1

tnX .. он работает. –

+0

приветствовал, что это сработало и для меня. – NomanJaved

Смежные вопросы