15

試圖將現有的Windows窗體添加到VS2012 WinForm項目,我去「Add/Existing item ...」,然後導入:MyForm.cs,MyForm.designer.cs, MyForm.resx導入Windows窗體(C#),Visual Studio 2012

這用於在早期版本的VS中工作。 (我可能必須調整命名空間)。

在VS2012中,MyForm.designer.cs和MyForm.resx現在不與設計者的目的關聯;即它們在解決方案資源管理器中顯示爲單獨的文件條目,而不嵌套在MyForm下。雙擊MyForm將顯示​​一個空表單(無控件),並且不顯示錯誤消息。該項目編譯並運行正常。

但是,當我將相同的文件拖放到項目中(調整/重命名命名空間)時,表單文件正確地相互關聯,Designer會打開表單。

雖然我現在有一個解決方案,有人可以突出顯示這些方法之間有什麼區別,如果添加/現有項選項不起作用,那麼在拖動文件時實際進行的是什麼點?哪個文件(.csproj也許?)負責加入表單文件?因爲它在VS的早期版本中可以同時使用,所以我認爲這是一個錯誤?

謝謝。

回答

26

試圖重現您的問題 - 沒有成功。

假設您要導入名爲YourFormName的表單。那麼你應該只添加YourFormName.cs到項目 - 其餘部分(YourFormName.designer.csYourFormName.resx)將被自動添加。

我的步驟:

  1. 創建WinForms項目(對我來說.NET框架是4)在VS2012(11.0.05727.1如果事項)
  2. 項目上右擊 - >添加 - >現有項...
  3. 搜索任何帶有控件的WinForm(我添加了兩個在VS2010中爲.NET Framework 4和3.5創建的表單)
  4. 對於兩種情況,「Designer」都有一些延遲(約30-40秒)預計並加載所有已存在的控件/代碼隱藏
+0

嗯,請澄清「你應該只添加Form1.cs ...」?當創建一個新的Windows窗體應用程序時,Form1自動生成。我不管它... 當你添加你現有的表單時,你會搜索並選擇哪個_files_?所有3個(即.cs,.designer.cs和.resx?)這就是我所做的。 我等待並等待,無論是0.4秒還是40秒,它都沒有什麼不同,我最終在解決方案資源管理器中看到3個文件條目,並且設計器不工作。 – Matthias 2013-02-25 09:29:15

+0

'Form1.cs'只是一個表格強調的一般名稱,您應該只添加'.cs'文件 - 而不是'.resx'或'.designer.cs'。將編輯我的答案,使其明確 – Nogard 2013-02-25 09:32:01

+0

好吧,有你。如果我只是選擇.cs,那麼它就像你說的那樣工作。絕對是與舊版本不同的行爲。也許在以前的版本中,它也可以只導入cs,但如果選擇了其他選項,它也會「原諒」。奇怪的是,它需要.designer.cs,這是所有重要的控制工具所在的地方。在查找要導入的文件時,它還在文件掩碼中包含.resx(但如果實際執行操作,則會播放):-)我認爲它已回答。謝謝Nogard。 – Matthias 2013-02-25 09:49:53

3

只需包含cs文件,只需約wait約一分鐘。沒有其他文件需要添加。 這將工作。

project>添加existing item 選擇表單myform.cs文件,然後單擊add按鈕。這會將文件導入到您的項目中。

+1

tnX ..它的工作原理。 – 2015-10-15 09:07:40

+0

歡迎它也爲我工作。 – NomanJaved 2016-04-19 04:18:22

相關問題